Set集合 今天简单学习了哈希表 介绍了集合Set:不可重复,分为两个:HashSet,TreeSet(二叉树(有序的)) 重温了equals:定义在Object中,没有重写的情况下,比较的是内存地址 List去除重复值的方法:写一个方法,之后在需要的地方调用,详情看笔记 HashSet:不可重复,无序(存入的顺序和取出的顺序不一致) 实体类的一些方法: hashCode(); equals(); compareTo();假设比较对象(主条件age,次要条件name) #HashSet 如何判断一个元素是否重复? 1先判断hash值在当前的集合中是否存在 2 如果没有,直接添加 3 如果存在相同的hash值,在调用equals判断 两种排序:自然排序 选择器排序 自然排序 Comparable:里面的对象具备排序的方法Comparable(释:Dog类中实现Comparable,方法重写)会自己排序 选择器排序 Comparator:实例化TreeSet 传入一个排序器 (释: TreeSet ts=new TreeSet(new DogTools()); Dog d1 = new Dog("小白",3); Dog d2 = new Dog("小黑",5); Dog d3 = new Dog("小青",6); Dog d4 = new Dog("小绿",2); ts.add(d1); ts.add(d2); ts.add(d3); ts.add(d4); System.out.println(ts);//2356 **/new DogTools()是一个方法重写public class DogTools implements Comparator<Dog>{ public int compare(Dog o1, Dog o2) { return o1.getAge()-o2.getAge(); } // >0 o1大 // =0 o1,o2一样大 // <0 o1小)顺序: 选择器排序优先级>自然排序 HashSet与TreeSet的区别? - HashSet: 无序(插入顺序与取出顺序),数据结构:哈希表(散列表) - TreeSet: 有序(数据再内部会排序),数据结构:二叉树
2021-07-10
最新推荐文章于 2021-11-10 17:26:45 发布