Java:即使在List对象中,Set不允许重复吗?

时间:2014-12-28 13:21:28

标签: java

我有一个以下问题我有两个列表,我在Set中添加了两个列表,但它不允许重复对象..是否在对象内设置检查重复项?

public static void main(String[] args) 
  {


    Set<List<String>> set = new HashSet<>();

    List<String> list = new ArrayList<String>();
    list.add("Hariom");
    set.add(list);
    List<String> list1 = new ArrayList<String>();
    list1.add("Hariom");
    set.add(list1);

    System.out.println(set.size());   
  }
  

打印1

Set设置正常,它会检查对象内部的重复项吗?

2 个答案:

答案 0 :(得分:5)

当您向HashSet添加新元素时,该元素的hashCodeequals用于确定相同的元素是否已在Set中。因此,如果两个列表相等,则只能将一个列表添加到HashSet中。

如果两个列表具有相同数量的元素,并且在迭代这两个列表时,每个元素对相等,则认为它们是相等的。因此,你的两个名单是平等的。

答案 1 :(得分:1)

集合不包含重复元素的集合Check this for more。 如果要保留重复的对象,则应将两个列表合并为另一个列表。