Set集合
特点:无序(没有下标) 不重复
HashSet:去重的功能
TreeSet:排序的功能
利用Set集合将别的集合进行刷锅 排序
//利用set集合a , b, c, d 去除ArrayList集合中的重复元素(操作原ArrayList)
ArrayList<String> a= new ArrayList<>();
a.add("a");
a.add("a");
a.add("b");
a.add("b");
a.add("c");
a.add("c");
a.add("d");
a.add("d");
LinkedHashSet<String> Set = new LinkedHashSet<>();
//把所有元素放入Set中
Set.addAll(a);
//清空list集合
a.clear();
//把所有元素 放回去 刷锅
a.addAll(Set);
System.out.println(a);
注意: 打印对象不会自动去重 需要重写equals和hashcode方法
去重类的对象时不用重写
只要创建对象 就会给每个对象 分配一个HashCode码
当添加到集合中的对象 hashCode不同时
没有调用equals方法 并且对象直接存到Set方法中
当hashCode码相同的时候会调用equals方法
来查看是否是同一个对象 是 就存不进去 反之 存进去
TreeSet 二叉树
存储规则
比我小的数 放在我的左边(返回负数的情况下);
比我大的数 放在我的右边(返回正数的情况下);
返回0就不存储
输出规则 以升序输出打印
TreeSet在存储的时候
只跟CompareTo 方法的返回值有关
TreeSet排序顺序
1.实现Comparable 接口
2.重写接口中 compareTo()方法
3.编写你想要的排序规则