2021-07-10

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: 有序(数据再内部会排序),数据结构:二叉树
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值