zoukankan      html  css  js  c++  java
  • Java里的集合:List/Set/Map

    首先对List/Set/Map进行说明:

    1. 三者都是接口, List和Set继承至Collection接口,Map为独立的接口

    2. List是无序的、Set是有序的。Map中既有有序的实现类也有无序的实现类。

    一、List

    1. 无序

    2. List包含:ArrayList、LinkedList、Vector。

      * ArrayList: 底层结构为数组、线程不安全

      * LinkedList: 底层结构为链表、线程不安全

      * Vector: 底层结构为数组、线程安全

    3. 补充说明:

      *数组实现:查询快,增加删除操作慢

      * 链表实现:查询慢,增加删除操作快

    二、Set

    1. 有序

    2. Set包含:HashSet、LinkedHashSet、TreeSet

      * HashSet: 底层结构为哈希表

      * LinkedHashSet: 底层结构为链表+哈希表  (FIFO)

      * TreeSet: 底层结构为红黑树

    3. 补充说明:

      * 哈希表可以保证唯一性 (hashCode()和equals())

      * 链表可以保证有序性 

      * 红黑树可以保证有序性和唯一性 (有序性:平衡二叉树;唯一性:compare(Object o)的返回值是否为0来判断) 参考来源

    三、Map

    1. TreeMap 有序、HashMap和HashTable无序

    2. HashMap与HashTable的区别

      * HashTable是同步的、线程安全,但是效率会慢

      * HashMap是非同步的。线程不安全,效率较快

      * HashTable不允许空值、HashMap允许空值

      * HashTable的父类为Dictionary,HashMap的父类为AbstractMap

    参考来源:

    1. https://blog.csdn.net/zhangqunshuai/article/details/80660974

    2. https://blog.csdn.net/dch9210/article/details/50951690

  • 相关阅读:
    Linux搭建ElasticSearch环境
    从DDD开始说起
    TFS看板晨会
    TFS看板的迭代规划
    TFS看板规则
    TFS看板的设计
    Api容器在应用架构演化中的用途
    基于Abp的WebApi容器
    线程队列
    动态类型序列化
  • 原文地址:https://www.cnblogs.com/yishilin/p/10875965.html
Copyright © 2011-2022 走看看