【问题标题】:How to load a list from a list inside an object in Java如何从Java中的对象内的列表中加载列表
【发布时间】:2014-04-29 14:25:24
【问题描述】:

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

如果有人可以帮助我,我将永远感激不尽。

谢谢

【问题讨论】:

  • 发布您当前的代码。
  • list.get(i).get(i).getAttribute()

标签: java arrays arraylist map


【解决方案1】:

嗯,最直接的迭代方式在这里应该没问题。只需遍历列表并从对象中获取列表并将它们添加到另一个列表中。下面是一个示例模板。

List<List<T>> listOfLists = new ArrayList<>();
for (Obj o : listOfObjects){
    listOfLists.add(o.list);
}

【讨论】:

    【解决方案2】:

    假设您在某处填充了一个列表列表,如下所示:

    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 语句中。

    【讨论】:

      【解决方案3】:

      从一些具有 userCode 和列表字段的对象开始:

       class X {
          private int userCode;
          private List<Y> list;
          int getUserCode(){ return userCode; }
          List<Y> getList() { return list; }
       }
      

      并假设我们有这些人的名单:

       List<X> listOfX;
      

      您想要的是将列表中的每个X 转换为地图中的一个条目。这是一个将 X 列表转换为地图的简单函数

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 2014-01-15
        • 2020-08-06
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多