Set详解

Set是一种不包含重复的元素的无序Collection。

HashSet:
虽然Set同List都实现了Collection接口,但他们的实现方式却大不一样。List基于上都是Array为基础。但Set则是在 HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。 看看HashSet的add(Object obj)方法的实现就可以一目了然了。

java代码

public boolean add(Object obj){
return map.put(obj,PRESENT)==null;
}

这个也是为什么在Set中不能像在List中又重复的项的根本原因,因为HashMap的Key是不能有重复的。


LinkedHashSet:
HashSet的一个子类,一个链表。

TreeSet:
SortedSet的子类,它不同于HashSet的根本原因就是TreeSet是无序的。它是通过SortedMap来实现的。

Set总结:

1.Set实现的基类是Map(HashMap)

2.Set中元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值