检查列表中的特定对象属性是否唯一

时间:2017-10-09 10:11:45

标签: java collections stream

我有一个对象列表,我需要检查对象的特定字段是否唯一。

public class SomeBean {

  private String name;
  private String value;

}

List<SomeBean> beans = ...

因此,我需要检查所有value字段和所有name字段是否都是唯一的(所有值都是唯一的,所有名称都是唯一的)。 显而易见的解决方案是获取List<String> names ...List<String> values的列表并分别检查唯一性,但在我的情况下,此列表可能相当大。由于此列表来自外部,我无法更改初始数据结构。

那么最有效的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:0)

删除重复项目的最简单方法是将项目加载到HashSet,因为Set不允许重复值。您可以使用HashMap<String, SomeBean>

您可以将商品添加到getName() + getValue(),您可以使用HashMap<String, SomeBean> myMap= new HashMap<>(); myMap.put(someBean.getName() + someBean.getValue(), bean); ... 作为关键字:

OnGlobalFocusChangeListener

答案 1 :(得分:0)

其中一种可能的方法是使用TreeSet集合。您应该覆盖compareTo()方法以防止重复项