Collection总结:

来源:互联网 发布:freebsd10 安装软件 编辑:程序博客网 时间:2024/06/05 14:28


Collection JDK 1.2出现
 |-List:有序的集合,可以有重复的元素。因为该集合体系有索引。
  |—ArrayList: 底层的数组数据结构. 查询速度很快;增、删、改慢。线程不同步
  |—LinkedList: 底层为链表结构。 增、删、改速度快。查 速度慢。
  |—Vector: 底层是数组数据结构。JDK 1.0出现  线程同步,被ArrayList替代。
   ArrayList与Vector:可变长度数组。默认都为10;ArrayList为(旧容量*3/2+1)增加,Vector:100%增加;


 |-Set:无序的集合,一个不包含重复元素的 collection。
  |-HashSet:底层数据结构是哈希表  线程为非同步
   hashSet是如何保证元素唯一性的呢?
   是通过元素的两个方法,hashcode和equals来完成。
   如果元素的HashCode值相同,才会判断equals是否为true。
   如果元素的hashcode值不同,不会调用equals方法。

   注意:HashSet对于判断元素是否存在及删除等操作,依赖方法为
    hashCode和equals方法。
   而ArrayList 判断元素只依赖于 equals 方法。
   原因是:数据结构不同。

  |-ThreeSet:可以对Set集合中的元素进行排序(ASCII码表进行排序)。 线程不同步的。 JDK1.2
   使用元素的自然顺序对元素进行排序,
   或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。

 Set 集合的功能和Collection 一致。

0 0