Set接口继承自——Collection——Iterable
Set接口只能存储不相等的对象,不排序,不带索引
Set接口通常追加、遍历元素比较慢,随机删除修改数据速度较快
Set集合方法规范
1、boolean add(Object e)
添加到Set开辟空间的任意位置,速度较快、可添加任意数据类型对象
2、void clear()
清空集合中所有元素
3、boolean contains(Object e)
判断集合中是否存在该元素
4、Iterator<E> iterator()
返回指向当前集合的迭代器、利用对Set集合元素遍历
5、boolean remove()
传进一个参数、删除该元素,由于Set没有索引,只能传数据
6、int size()
返回当前集合大小
7、boolean isEmpty()
判断当前集合是否为空
8、Object [ ] toArray()
将集合中的元素取出放到Object数组中
HashSet集合实现类
此类实现Set接口,由哈希表(实际上是一个HashMap实侧)支持实现算法。HashSet不 能保证s集合元素的迭代顺序,也不能保证该顺序恒久不变。HashMap允许使用null元素。HashSet实现不是线程同步的。如果在多个线程同时访问一个HashSet,应该做必要额外同步处理,HashSet由于不排序,通常只需效率比较高。
TreeSet集合实现类(红黑二叉树)
TreeSet是基于TreeMap的NavigableSet实现并实现SortedSet排序接口。默认按照元素的自然顺序(升序)对元素进行排序,或者根据创建set时提供的Comparator进行排序。
TreeSet不是线程同步的。如果在多个线程同时访问一个TreeSet,必需做必要额同步处理。TreeSet由于需要进行排序,因此TreeSet比HashSet效率要低。