• java容器-全览


    1.Collection全览-非线程安全的实现类

      

    接口简介

    Iterable:迭代器接口,用于遍历数据。foreach或者iterator。

    Collection:集合,java容器大部分集合的父类接口。java集合分两派,一派是Collection(只存储值的容器),一派是Map(存储键值对的容器)

    List:顺序写数据的数组容器,内存连续(jvm层面)

    Queue:先进先出(FIFO)队列,入队出队操作都有两种实现(一种是失败抛异常,一种是返回null或者false),不能写入null

    Deque:double ended queue(双端队列),不在是FIFO,前后都可以插入删除,不能从中间操作,不能写入null

    Set:用于存放非重复元素的集合,可以插入null

    SortedSet:支持排序的set集合(set使用的是hash存储,默认是不支持排序功能的)

    NavigableSet:提供有序集合的扩展功能,如返回大于、大于等于、小于、小于等于某个key的子集合等

    类简介  

      List:

     Stack:LIFO(LAST-IN-FIRST-OUT)数组,继承自VECTOR(基本已废弃,图中未体现,这里也不过多介绍)

    ArrayList:有序数组,底层使用连续的物理内存存储,数组大小不能动态改变,支持自动扩容,实际是复制一个更大的新数组出来。

    LinkedList:使用链表形式组成的有序数组,不支持随机存储,需要重头遍历,物理内存不连续,数组大小无限制。

    Queue:

    LinkedList:同上,只是通过已有功能扩展实现了队列的功能

    ArrayQueue:jdk内部使用

    PriorityQueue:优先级队列,根据插入的数据的优先级自动排序,(优先级来源于Comporator,或者插入类实现Comparable接口的compareTo方法)

    Deque:

    LinkedList:支持双端操作

    ArrayQueue:内部使用

    Set:

    HashSet:使用Hash表存储的集合

    LinkedHashSet:有序的hashset(按照插入顺序使用链表的形式连接),不支持排序

    TreeSet:支持排序的hashset

    SortedSet:

    TreeSet:支持排序的hashset

    2.Collection全览-线程安全的实现类

      

    3.Map全览-非线程安全的实现

      

    接口简介

    Map:无序的hash映射,以键值对的形式存储数据。

    SortedMap:表示是一个有序的hash映射表

    NavigableMap:提供有序hash映射的扩展功能,如返回大于、大于等于、小于、小于等于某个key的子集合等

    类简介

    EnumMap:key为枚举类的hash映射表

    HashMap:键值对存储的hash映射,允许key或者value为null

    LinkedHashMap:在hashmap的基础上增加了一个链表,按照插入顺序链接,保证有序性

    WeakHashMap:同hashmap,只是使用的是弱引用,在内存不足的时候会被自动回收,一般可以用来做缓存,不能用来存储不可丢失的数据。

    IdentityHashMap:插入删除等操作使用==进行比较的hash映射。注意:==比较得到是地址,其它的hash映射都是使用equals和hashCode进行比较的,基础类型比较的是值,自定义对象,可以自己覆写equals逻辑。

    Treemap:支持排序的hashmap

    4.Map全览-线程安全的实现

      

  • 相关阅读:
    数据流控制
    转:简单的Mysql主从复制设置
    转:CentOS---网络配置详解
    Linux-vim学习入门
    Linux图形界面与字符界面切换
    转:MySQL表名不区分大小写
    CentOS6.5_x86安装Mysql5.5.49
    Linux的环境变量设置和查看
    Linux防火墙的关闭和开启
    Linux command not found 问题解释
  • 原文地址:https://www.cnblogs.com/gc65/p/11220822.html
Copyright © 2020-2023  润新知