开始之前看一下我们的思维导图
一.Set
①.Set的写法
Set<Object> set=new HashSet<>();
②.Set的无序及不可重复性
图中Set集合放了两个b元素,输出结果为a,b,c。证明set集合的不可重复性
③Set的两种遍历方式
foreach Iterator
需要注意的是:jdk的版本不同,会影响遍历结果的无序性
二.Set集合的去重原理
hashSet的底层数据结构为哈希表
如上图所示,我没有写hashcode和equals方法
在eclipse中 alt+shift+s 可以书写hashcode和equals方法 如下图所示
注意的一点是:在hashcod方法中,返回结果要改为0
此时我们再看一下输出结果
这里会优先调用hashcode方法对比地址,然后调用equals方法对比值。
equals调用的次数随之增加。
三.TreeSet
①写法
Set<Stud> set=new TreeSet<>();
TreeSet是根据某种(规则)对里面的元素进行排序,又分为两种排序法
②自然排序
大家可以看一下,我输出时报了一个错误,右上角有一个Comparable
注意一下,这是一个接口,我们新建的那个类要实现这个接口,看操作
实现接口后要重写方法,里面的返回值时根据Stud这个类里面的钱来进行从小到大进行排序,
相当于一种规则。
return this.money – s.money; 这里为降序排列
③、TrssSet 比较器排序
比较器: java.util.Comparator
升序 实现Compartor接口
降序
根据名字进行排序
注意里面的代码,改成了根据名字进行比较,在比较器当中,字母根据a-z进行排序
笔记到此结束,希望有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12262.html