set----散列集
来源:互联网 发布:webpack this windows 编辑:程序博客网 时间:2024/06/16 04:48
接口 继承结构:
- java.lang.Iterable<T>
- java.util.Collection<E>
- java.util.List<E>
- java.util.Queue<E>
- java.util.Deque<E>
- java.util.Set<E>
- java.util.SortedSet<E>
- java.util.NavigableSet<E>
- java.util.SortedSet<E>
- java.util.Collection<E>
类型继承结构:
- java.util.AbstractSet<E> (implements java.util.Set<E>)
- java.util.EnumSet<E> (implements java.lang.Cloneable, java.io.Serializable)
- java.util.HashSet<E> (implements java.lang.Cloneable, java.io.Serializable,java.util.Set<E>)
- java.util.LinkedHashSet<E> (implements java.lang.Cloneable, java.io.Serializable, java.util.Set<E>)
- java.util.TreeSet<E> (implements java.lang.Cloneable,java.util.NavigableSet<E>,java.io.Serializable)
sortedSet增加的方法 :Comparator<? super E> Compare()思考为什么用? super E First()last()
NavigableSet增加的方法:higher() lower() ceilling() floor() pollFirst() pollLast()
TreeSet增加的方法:HeadSet SubSet tailSet
HashSet和TreeSet区别:
- HashSet和TreeSet继承的接口的不同一个是java.util.Set<E>, java.util.NavigableSet<E>
- HashSet实现的是普通的散列表 和TreeSet 则是红黑树的数据结构
- HashSet是无序的,TreeSet是有序的
- HashSet的查询效率更高,Treeset略低
- 注意一下HashSet的多种构造方法
TreeSet<E>是如何知道元素应该如何排列呢?
- 在E上实现comparable<E>接口,默认会使用该接口的compareTo方法来比较,但是有一个缺点:就是同一个E类,可能在不同的TreeSet中需要不同比较方法
- 定义一个Comparator的子类 并将其传入TreeSet,这是一种策略模式,这样就给不同的Treeset定义了不同的元素比较方法。例子 :P575 比较方法就是Comparator的compare(a,b)方法
- 有时候Comparator可以使用匿名内部类来实现。
注意:
1凡是实现了set<E>的 E都应该实现hashCode,且如果a.equals(b)为true,a,b必须具有相同的散列码
0 0
- set----散列集
- set /?
- Set
- set
- set
- set
- Set
- set
- Set
- Set
- set
- set
- Set
- set
- Set
- set
- Set
- set
- /bin、/sbin、/usr/bin、/usr/sbin目录的区别
- MMORPG大型游戏设计与开发(part5 of net)
- 【Web 前端】盒子模型
- hdu 1104 Remainder 【广度优先搜索+数论】
- Ubuntu基本环境配置
- set----散列集
- Java GC 调试手记
- ubuntu 输入法图标消失解决办法
- 大牛技术博客分享
- MMORPG大型游戏设计与开发(part6 of net)
- 枚举排序各种并行之OpenMP
- HDU-4438-Hunters
- Phoenix Tips (10) 分页查询
- HDU 3535 背包综合