我有一个数组列表,如下所示:
List<String[]> myList = new ArrayList<String[]>();
myList.add( new String[]{"A1","B1","C1","D1","values"} );
myList.add( new String[]{"A1","B1","C2","D1","values"} );
myList.add( new String[]{"A1","B1","C2","D2","values"} );
myList.add( new String[]{"A2","B1","C1","D1","values"} );
myList.add( new String[]{"A2","B1","C1","D2","values"} );
我需要填充一个与父亲有依赖关系的对象,所以:
- A1 只有一个 child B1。
- B1 有 2 个 child ,C1 和 C2。
- C1 有 1 个 child D1,其值(value)观...
- C2 有 2 个 child ,D1 和 D2,他们的值...
- B1 有 2 个 child ,C1 和 C2。
- A2 只有一个 child ,B1(与另一个 child 不一样)
- B1只有一个 child ,C1...等
你觉得什么样的结构比较好?我需要名称 A1、B1 等。
我对 map 、数组、列表进行了探测...我认为该算法是不可能的... :( :(
请帮帮我!
编辑说明:
我有一个来自具有 5 或 6 个 GROUP BY 子句的数据库的结果集。我有所有的纯数据和
我需要用文本对象制作一个结构,例如:
Person A - Building 1 - Tower 1 - Some Text A
Person A - Building 1 - Tower 2 - Another Text
Person A - Building 2 - Tower 1 - Another one Text
Person A - Building 2 - Tower 3 - My Text
Person B - Building 1 - Tower 2 - Any Text
Person B - Building 3 - Tower 1 - A Text...
我需要一个用于此数据的对象结构...这可能吗?
最佳答案
我做到了!我的天啊! :D :D :D :D :D :D :D...
private static void finalFillerTotalSuperSpecial(List<String[]> initialList, HashMap<String,Object> mapa){
String[] currentElement = null;
String currentKey = null;
String[] nextElement = null;
String nextKey = null;
int i=0,start,end;
while (i < initialList.size()) {
start = i;
currentElement = initialList.get( i++ );
currentKey = currentElement[0];
if (i<initialList.size()){
nextElement = initialList.get( i );
nextKey = nextElement[0];
}
HashMap<String,Object> insideMap = new HashMap<String,Object>();
mapa.put(currentKey, insideMap);
while (currentKey.equals(nextKey) && i < initialList.size()) {
currentElement = initialList.get( i++ );
currentKey = currentElement[0];
if (i<initialList.size()){
nextElement = initialList.get( i );
nextKey = nextElement[0];
}
}
end = i;
List<String[]> listOfCurrentElements = new ArrayList<String[]>();
for (int j=start;j<end;j++)
listOfCurrentElements.add( getNextArray(initialList.get(j)) );
if ( listOfCurrentElements.get(0).length>1 )
finalFillerTotalSuperSpecial(listOfCurrentElements,insideMap);
else
insideMap.put(listOfCurrentElements.get(0)[0], null);
}
}
关于java - 从数组列表创建一棵树(例如 ResultSet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126723/