0

我想知道是否有更有效的方法来做到这一点。我正在尝试从列表中调用列表

public class GetL{
public List getList(){
   List mainList = new ArrayList();
   List subList = new ArrayList();
   List subList2 = new ArrayList();

   subList.add("one");
   subList.add("two");
   mainList.add(subList);

   subList2.add("three");
   subList2.add("four");
   mainList.add(subList2);

   return mainList;
}
}

我会这样称呼它。

GetL getL = new GetL();
List tempList = getL.getList();
tempList.get(0);
tempList.get(1);

有没有更有效的方法来达到同样的效果?我不喜欢这种方式的最大原因之一是我必须创建这么多不同的“列表”

编辑:
对我来说最大的问题是我试图从数据库中查询数据(即 id、age、name),它可能超过 100 组。而且我不能动态声明许多列表并存储到“mainList”中

我最初的设计是使用 while 循环并清除列表。

while( something ){
   subList.add(something);
   subList.add(something2);
   mainList.add(subList);
   subList.clear();
}

我不知道 clear() list 也清除 mainList 中的存储值...

4

1 回答 1

0

你可以这样做:

/** 
 *  Returns a list of lists containing Foo objects.
 */

public List<List<Foo>> getListOfLists() {
    ResultSet rs = // get data from database...
    List<List<Foo>> mainList = new ArrayList<List<Foo>>();
    for (Row r : rs) {
        List<Foo> subList = new ArrayList<Foo>();
        for (Foo f : r.getFooList()) {
            subList.add(f);
        }
        mainList.add(subList);
    }
    return mainList;
}

上面的代码假定您的数据库查询返回一个 ResultSet。

它还假设 ResultSet 中的每一行都有一个返回 Foo 对象列表的方法。

每个子列表都包含 Foo 类型的对象(您可以将其替换为您正在使用的任何类)。

如需更有用的答案,请尝试分享一些示例代码,以显示您正在尝试做的事情。

现在我们只能猜测你在追求什么......

于 2013-06-29T00:50:46.637 回答