我有一个对象列表,在这些对象中我有另一个列表。我想知道是否有一种简单的方法可以在对象中加载这些列表的列表。我想从对象中选择一个参数(例如userCode),我希望该列表返回所有具有匹配userCode的对象的所有列表。
如果有人能帮助我,我将永远感激。
谢谢
答案 0 :(得分:0)
这里最直接的迭代方式应该没问题。只需循环遍历列表并从对象中获取列表并将其添加到另一个列表中。下面是一个示例模板。
List<List<T>> listOfLists = new ArrayList<>();
for (Obj o : listOfObjects){
listOfLists.add(o.list);
}
答案 1 :(得分:0)
假设您已在此处填充了列表列表:
List<List<Object>> list1 = new ArrayList<List<Object>>();
for(List<Object> list : list1){
List<Object> list2 = new ArrayList<Object>();
list.add(list2);
}
然后你可以创建这样的东西来找到你的对象:
List<List<Object>> find = new ArrayList<List<Object>>();
for(List<Object> list : list1){
for(int i=0;i<list.size();i++){
if(list.get(i).toString().equals("userCode")){
find.add(list);
break;
}
}
}
return find;
请注意,我假设一个对象,你应该把你的条件放在if语句中。
答案 2 :(得分:0)
从一个具有userCode和list字段的对象开始:
class X {
private int userCode;
private List<Y> list;
int getUserCode(){ return userCode; }
List<Y> getList() { return list; }
}
并假设我们已经列出了这些人:
List<X> listOfX;
您想要的是将列表中的每个X
转换为地图中的条目。这是一个简单的函数,可以将X列表转换为Map
Map<Integer, List<Y>> buildMap(List<X> list) {
Map<Integer, List<Y>> map = new HashMap<Integer, ArrayList<Y>>();
for(X x:list) {
map.put(x.getUserCode(), x.getList());
}
return map;
}
地图中的键是X列表中的userCode,值是X的列表字段:
List<Y> listOfY = map.get(someUserCode);