【问题标题】:How to modify ArrayList object if one of its field contain duplicate entries?如果其中一个字段包含重复条目,如何修改 ArrayList 对象?
【发布时间】:2016-08-03 08:59:28
【问题描述】:

我有一个模型类类型的ArrayList。模型类包含两个字段 例如:numbername

如果number 出现多次,那么我需要附加其对应的name,以便numberArrayList 中必须是唯一的?

让我们说:

list.get(0).getNumber = 100,

list.get(0).getName   = Narendra.

list.get(1).getNumber = 100,

list.get(1).getName   = Modi.

list.get(2).getNumber = 101,

list.get(2).getName   = xyz.

所以我的最终清单应该只包含两项,即

list.get(0).getNumbet =100,

list.get(0).getName = Narendra Modi.

list.get(1).getNumbet =101,

list.get(1).getName = xyz.

【问题讨论】:

  • 您可以改用地图(如果需要维护插入订单,请使用LinkedHashmap,如果您需要一些不同的订单,请使用TreeMap)。然后以数字值作为key,先进行查找。
  • @Thomas 你能告诉我sn-p吗?
  • ArrayList 可以有重复的条目,但如果您需要唯一的键,例如,Map 将是一个更好的选择。网络上有数百万个示例。

标签: java list oop arraylist collections


【解决方案1】:

看来您真正想要的是多地图。您可以在普通的 Java 8 中使用

final Map<Integer, Set<String>> map = new HashMap<>();

public void put(Integer num, String name) {
    map.computeIfAbsent(num, n -> new HashSet<>()).add(name);
}

put(100, "Narendra");
put(100, "Modi");
put(101, "xyz"):

【讨论】:

    【解决方案2】:

    对于传统的java版本,您可以使用如下map:

        Map<Integer, String> m = new HashMap<Integer, String>();
        if(m.get(100) != null){
            m.put(100,"Narendra");          
        }
        else{
            m.put(100, (m.get(100)+" Modi"));
        }
    

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 2020-06-06
      • 2021-11-09
      • 2020-01-21
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多