Java集合List、Set、Map讲解

概述

  List、Set接口都是继承于Collection主接口,而Map为独立接口

      1、List接口下有ArrayList、Vector、LinkedList实现类

     2、Set接口下有HashSet、LinkedHashSet、TreeSet实现类

     3、Map下有HashMap、LikedHashMap、Hashtable、TreeMap实现类

特点

  Collection接口:

    ——List接口 有序,可重复    

      ArrayList

      优点: 底层数据结构是数组,查询快,增删慢

      缺点: 线程不安全,效率高

      LinkedList

      优点: 底层数据结构是链表,查询慢,增删快

      缺点: 线程不安全,效率高

      Vector

      优点: 底层数据结构是数组,查询快,增删慢

      缺点: 线程安全,效率低

 

    ——Set 无序,唯一 

      HashSet

      底层数据结构是哈希表。(无序,唯一)

      如何来保证元素唯一性?

      答:依赖两个方法:hashCode()和equals()

        LinkedHashSet

      底层数据结构是链表和哈希表 (FIFO插入有序,且唯一)

      原因如下两点:

      答:1.由链表保证元素有序

        2.由哈希表保证元素唯一

      TreeSet

      底层数据结构是红黑树。(唯一,且有序)

      1. 如何保证元素排序的呢?

      答:1.自然排序

        2.比较器排序

      2.如何保证元素唯一性的呢?

      答:根据比较的返回值是否是0来决定

针对于Collection集合我们到底如何使用呢?(重点掌握)

  唯一吗?

    是:Set

      排序吗?

        是:TreeSet或LinkedHashSet
          否:HashSet
          如果你知道是Set,但是不知道是哪个Set,就用HashSet。

    否:List

      要安全吗?

        是:Vector
          否:ArrayList或者LinkedList

          查询多:ArrayList
            增删多:LinkedList


  如果你知道是List,但是不知道是哪个List,就用ArrayList。如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。

猜你喜欢

转载自www.cnblogs.com/luckyjiachuixun/p/12287945.html