集合——Collection

集合与数组的区别:

  数组一旦声明,其数据类型和长度不可变,集合的数据类型可以混和,长度不限定。

集合的结构图:

Collection               -    Map

---------------------------------------------------------------------------

  List                -       HashMap

    ArrayList            -        LinkedHashMap

      LinkedList            -        TreeMap

    LinkedList            -

----------------------------------------------------------------------------

  Set                -

    HashSet            -

      LinkedHashSet       -

    TreeSet            -

----------------------------------------------------------------------------

List和Set分别实现了Collection接口,而Map和Collection“平级”。


 

List:元素存储特点不唯一、无序。

遍历方式:

1、for循环

2、for-each

3、迭代器

  ArrayList:

    相当于可变长度的数组,在内存中的存空间是连续的

    优点:查询、遍历效率高

    缺点:添加、删除效率低

  Vector:

    类似于ArrayL。

    区别:

      ArrayList是非线程安全的,效率较高

      Vector是线程安全的,效率较低

  LinkedList:

    采用链表结构进行存储

    优点:添加、删除效率高

    缺点:查询、遍历效率低

Set:元素存储特点唯一、无序

1、for-each

2、迭代器

  HashSet:

    采用哈希表方式进行存储

  优点:增加、删除、查询效率高

  在添加元素时调用hashCode()方法,计算哈希值,如果哈希值相等,则继续调用equals()方法进行比较,如果返回值为true,则两个元素相同,反之不同。即     equals()为true,则哈希值一定相等。反之则不成立。

  缺点:无序

    LinkedHashSet:

      采用链表结构+哈希表存储方式

      有序(添加顺序)

  TreeSet:

    采用二叉树(红黑树)方式进行存储

    有序(大孝顺序)

    添加元素需要实现Comparable接口或者创建Comparetor比较器

 

 

 

  

 

posted @ 2017-06-14 22:04  我是胡大大  阅读(124)  评论(0编辑  收藏  举报