java - 从数组列表创建一棵树(例如 ResultSet)

标签 java algorithm collections tree

我有一个数组列表,如下所示:

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,他们的值...
  • 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/

相关文章:

java - 如何在 glassfish/payara REST 服务器中注册 jackson-datatype-joda

Java:如何编写方法来接受 child 而不强制转换为 parent ?

java - 如何通过计算每个字符的出现次数将字符串转换为ArrayList?

algorithm - 使用给定的随机数生成函数查找随机数生成器

java - 添加 fragment ?

java - 集合的唯一性

algorithm - 将两个或多个数字压缩成一个字节

c# - .NET 中是否有 SortedList<T> 类?

java - 将 Arrays.asList 与 int 数组一起使用

java - JMH - List#addAll 比 ArrayList#new 更快?