Java™对Set接口的Tutorial

Java™对Set接口的Tutorial

https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html

常用Set实现:HashSet TreeSet LinkedHashSet

HashSet

用hash table储存元素,性能高,不保证元素顺序

TreeSet

使用红黑树储存元素,根据元素值排序,String按字典顺序,Integer按数值顺序,效率HashSet稍慢

LinkedHashSet

链表结构的HashSet,能够保证添加的顺序

Set可以用来干嘛,把Collection中重复的元素剔除,比如有个Collection c,

Collection<T> cWithoutDuplicate = new HashSet<T>(c);

//剔除重复元素且保持顺序
Collection<Type> noDups = new LinkedHashSet<Type>(c);

Set的集合操作:包含 交 并 差 亦或

s1.containsAll(s2) //返回boolean,是否包含

s1.addAll(s2)   //并

s1.retainAll(s2)    //交集

s1.removeAll(s2)    //差

以上操作都会在s1上操作,若要保留s1与s2需要复制一份再操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值