我想知道是否有更有效的方法来做到这一点。 我试图从列表中调用List
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,年龄,名称),它可以超过100套。我无法动态声明许多List并存储到“mainList”
我的原始设计是使用while循环并清除列表。
while( something ){
subList.add(something);
subList.add(something2);
mainList.add(subList);
subList.clear();
}
我不知道clear()列表也清除了mainList中的存储值...
答案 0 :(得分: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类型的对象(您可以使用您正在使用的任何类替换它)。
如需更有帮助的答案,请尝试分享一些示例代码,以显示您要执行的操作。
现在我们只能猜测你的目标...