1. Set集合和List集合的区别?
Set: 不允许元素重复, 集合元素唯一(元素可以为null), 不能保证迭代顺序恒久不变, 无序(存储和取出不一致).
List: 允许元素重复, 并且元素有序(存储和取出一致).
2. Set 集合存储元素时可以保证元素的唯一性, 原因什么?
HashSet 集合的add()方法底层依赖于双列集合HashMap, 它依赖于两个方法 equals()和hashCode(); 先比较元素 hashCoede值, 再比较equals().
3.Set集合存储字符串, 由于String类底层重写了equals()方法, 所以集合中不会出现两个内容相同的字符串.
例:Set s=new HashSet();
s.add("hello");
s.add(new String("hello"));
System.out.println(s); //[hello],虽然创建了两个不同的对象, 但是集合只添加了一个元素, 这是因为两个元素
的hashCode值相同, 且用equals()方法比较返回true
System.out.println("hello".hashCode()); //99162322
System.out.println(new String("hello").hashCode());