JavaSE--集合总览03:单列集合Collection的体系之一:Set(包含一点哈希值的计算)

Collection体系的特点 分为 list 和set集合,这篇文章主要讲述Set,需要List请看上篇

简单认识单列集合collection集合的特点 :

list集合的特点: 有序 可重复 有索引
set集合的特点:无序 不重复 无索引 其中LinkedHashSet有序 TreeSet 按大小默认排序

▲List,set和Collection都是接口!!!

主要介绍HashSetLinkedSetTreeSet集合 

一.HashSet

特点:无序 不重复 无索引

方法基本都是Collection接口提供的大致都是:

add()添加元素,

clear()清空集合,

isEmpty()判断集合是否为空

size()集合长度

contains()是否包含某个元素

remove()删除某个元素

 toArry()把集合转成数组。

创建格式:Set<数据类型> set=new HashSet<>();

具体演示:

结果:

▲补充知识:哈希值----Java中每个对象都有对应的哈希值,对象可以通过调用Object类提供的hashecode()方法 返回该对象自己的哈希值。

public int hashecode() :返回对象的哈希值

注意:同一个对象多次调用hashecode()返回的哈希值都是一样 不同的对象 他们的哈希值一般不同 但也有可能相同(哈希碰撞

如图有哈希碰撞:

以下是一个HashSet集合的例子:

运行结果:

二.LinkedSet

特点:有序 不重复 无索引

方法基本都是Collection接口提供的大致都是:add()添加元素, clear()清空集合, isEmpty()判断集合是否为空, size()集合长度, contains()是否包含某个元素, remove()删除某个元素, toArry()把集合转成数组。

以下为实例代码:

运行结果:▲LinkedList的有序是指插入的顺序,不是大小的顺序

三.TreeSet

特点:1.不重复 无索引 可排序(默认升序,按照元素的大小,由小到大排序)

            2.底层基于红黑树实现排序

▲注意:

1.对数值类型:Integer Double 默认按数值大小的升序排序

2.对于字符串类型:默认按照首字符的编号升序排序

3.对于自定义类型如Student对象,TreeSet默认是无法直接排序的------使用之前的两个方法; 所以可以使用新的两种方法:

A:让自定类实现Comparable接口 重写里面的compaeeTo方法来指定比较规则

B:通过调用TreetSet集合有参构造器,可以设置Comparator对象(比较器对象,用于指定比较规则)public TreeSet(Comparator <? super E> comparator) -----例子的灰色体是注释

运行结果是:

以上就是关于Collection接口下Set接口的几个集合的大致描述,感谢各位大佬观看,求点赞收藏喔!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值