如何从Java中的对象内的列表加载列表

时间:2014-04-29 14:25:25

标签: java arrays arraylist map

我有一个对象列表,在这些对象中我有另一个列表。我想知道是否有一种简单的方法可以在对象中加载这些列表的列表。我想从对象中选择一个参数(例如userCode),我希望该列表返回所有具有匹配userCode的对象的所有列表。

如果有人能帮助我,我将永远感激。

谢谢

3 个答案:

答案 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);