我有一个以下问题我有两个列表,我在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设置正常,它会检查对象内部的重复项吗?
答案 0 :(得分:5)
当您向HashSet添加新元素时,该元素的hashCode
和equals
用于确定相同的元素是否已在Set中。因此,如果两个列表相等,则只能将一个列表添加到HashSet中。
如果两个列表具有相同数量的元素,并且在迭代这两个列表时,每个元素对相等,则认为它们是相等的。因此,你的两个名单是平等的。
答案 1 :(得分:1)
集合不包含重复元素的集合。 Check this for more。 如果要保留重复的对象,则应将两个列表合并为另一个列表。