集合框架之Set

导读:本篇文章讲解 集合框架之Set,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

开始之前看一下我们的思维导图

集合框架之Set

一.Set

 ①.Set的写法

Set<Object> set=new HashSet<>();

②.Set的无序及不可重复性

集合框架之Set

 图中Set集合放了两个b元素,输出结果为a,b,c。证明set集合的不可重复性

③Set的两种遍历方式

foreach  Iterator

需要注意的是:jdk的版本不同,会影响遍历结果的无序性

集合框架之Set

 二.Set集合的去重原理

hashSet的底层数据结构为哈希表

如上图所示,我没有写hashcode和equals方法

在eclipse中  alt+shift+s  可以书写hashcode和equals方法  如下图所示

 集合框架之Set

 注意的一点是:在hashcod方法中,返回结果要改为0

此时我们再看一下输出结果

集合框架之Set

 

这里会优先调用hashcode方法对比地址然后调用equals方法对比值。

equals调用的次数随之增加。

三.TreeSet

①写法

Set<Stud> set=new TreeSet<>();

TreeSet是根据某种(规则)对里面的元素进行排序,又分为两种排序法

②自然排序

集合框架之Set

 大家可以看一下,我输出时报了一个错误,右上角有一个Comparable

注意一下,这是一个接口,我们新建的那个类要实现这个接口,看操作

集合框架之Set

实现接口后要重写方法,里面的返回值时根据Stud这个类里面的钱来进行从小到大进行排序,

相当于一种规则。

return this.money – s.money; 这里为降序排列

③、TrssSet 比较器排序

比较器: java.util.Comparator

升序  实现Compartor接口

集合框架之Set

 降序

集合框架之Set

 根据名字进行排序

集合框架之Set

 注意里面的代码,改成了根据名字进行比较,在比较器当中,字母根据a-z进行排序

笔记到此结束,希望有所帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12262.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!