集合

    
Collection:
        |--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
        |--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。
List接口:
  List本身是Collection接口的子接口,具备了Collection的所有方法。现在学习List体系特有的共性方法,查阅方法发现List的特有方法都有索引,这是该集合最大的特点。
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
        |--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
        |--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。
        |--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。

Set接口:
         |--HashSet:底层数据结构是哈希表,线程是不同步的。无序,高效;
                 HashSet集合保证元素唯一性:通过元素的hashCode方法,和equals方法完成的。
                 当元素的hashCode值相同时,才继续判断元素的equals是否为true。
                 如果为true,那么视为相同元素,不存。如果为false,那么存储。
                 如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。
       |--LinkedHashSet:有序,hashset的子类。
         |--TreeSet:对Set集合中的元素的进行指定顺序的排序。不同步。TreeSet底层的数据结构就是二叉树。

对于ArrayList集合,判断元素是否存在,或者删元素底层依据都是equals方法。
对于HashSet集合,判断元素是否存在,或者删除元素,底层依据的是hashCode方法和equals方法。

Map集合:
  |--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。
  |--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable.
 |--TreeMap:底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。

Map集合存储和Collection有着很大不同:
 Collection一次存一个元素;Map一次存一对元素。
 Collection是单列集合;Map是双列集合。
 Map中的存储的一对元素:一个是键,一个是值,键与值之间有对应(映射)关系。
  特点:要保证map集合中键的唯一性。
posted @ 2012-10-01 21:29  昨天.今天.明天  阅读(234)  评论(0编辑  收藏  举报