Set集合

来源:互联网 发布:java递归遍历二叉树 编辑:程序博客网 时间:2024/06/05 02:42

1、java.util.Collection [I]

           java.util.Set[I]
              java.util.HashSet[C]
                  java.util.LinkedHashSet[C]
              java.util.SortedSet[I]
                  java.util.TreeSet[C]

2、Set集合的存储特点
   a、set集合属于无序集合,这个无序指的是:HashSet。
   b、TreeSet集合无序,指的是,存储顺序可能并不是插入顺序。
      TreeSet集合有序,指的是,插入时的数据会自动根据某个逻辑升序排列。

3、HashSet:
   a、该集合具有互斥性,即,相同的元素无法重复的添加。
   b、HashSet每次扩容16个大小。
   c、HashSet每次add(E e),e为添加的键值,该集合中存储的数据以键值对的形式存键值即为传入的数据e, 键名即为:hash(e),                                                                        如果存放相同的键值,那么必定拥有相同 的 键 名,存储就会失败,hashset.add(Object)返回false,否则返回true;
  4、TreeSet:
   a、插入的元素会按照compareTo规则进行升序排序来存储。
   b、输出时,TreeSet数据不会按照插入顺序来输出
  5、LinkedHashSet
   a、插入的元素会按照插入的顺序输出
   (PS:但是该集合中的元素也是无序的,只是增加了链表数据结构。来维护插入顺序。)
  总结:
   HashSet:哈希表是通过使用称为散列算法的机制来存储信息,元素没有以某种特定的顺序来存储。
         TreeSet:提供一个使用树结构存储Set接口来实现,对象以升序的顺序来存储,
                        访问和遍历的时间都很快。
   LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代。

0 0