集合的概述

List、Map、Set的区别与联系

1、结构特点

  • List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;
  • List存储的数据是有序的并且值是可以重复;Map中存储的数据是无序的,它的键是不允许重复的,但它的值是可以重复的;Set中存储的数据是无序的并且是不允许重复的,它的元素是由hashcode决定的,所以是固定的(用户无法控制hashcode,所有是无序的);

2、实现类

  1. List接口的3个实现类
    • LinkedList基于链表的实现,非线程安全的,链表内存是散列的,增删快,查询慢;
    • ArrayList是基于数组的,非线程安全的,效率高,增删慢,查询快;
    • Vector是基于数组的,线程安全的,效率低,增删慢,查询慢;
  2. Map接口的4个实现类
    • HashMap基于hash表的Map接口实现,非线程安全,高效,支持null值与null键;
    • HashTable 线程安全,线程安全,低效,不支持null值与null键;
    • LinkedHashMap是HashMap的一个子类,保存了记录的插入顺序;
    • SortMap接口 Treemap是SortMap的实现类,能够把保存的记录根据键排序,默认是键值的升序
  3. Set接口有2个实现类
    1. HashSet 底层是由HashMap实现,不允许集合中有重复的数值;
    2. LinkedHashSet 继承于HashSet,同时又基于LinkedHashMap来进行实现,底层实现是LinkedHashMap;

 

posted @ 2020-07-07 10:57  谦谦君子-小乔  阅读(140)  评论(0编辑  收藏  举报