美文网首页Java学习笔记Java 杂谈
Java集合Collection使用概述

Java集合Collection使用概述

作者: Java高级架构狮 | 来源:发表于2018-12-07 17:46 被阅读6次

本文是从性能角度对Java所有集合进行一个实战方面的比较与总结,并且列出在不同集合之间转换的正确方式。

List

在单线程下的List有:

ArrayList是基于数组;

LinkedList最好不用使用;

Vector已经被废弃。

在多线程情况下:

使用CopyOnWriteArrayList ,适合很少更新,经常来回遍历。

Queue/deque

在单线程下队列可以使用:

通常是ArrayDeque基于数组的;

Stack被废弃了;

PriorityQueue 适合排序的检索操作;

在多线程情况下:

ArrayBlockingQueue是有界的堵塞队列;基于数组实现的堵塞队列,大小不能变化,当你试图加入新元素到满的队列中时,该方法将堵塞直至其他线程从该队列释放元素。

ConcurrentLinkedDeque / ConcurrentLinkedQueue是无界的linked queue(使用CAS并发);一个元素加入队列不会堵塞,但是队列的消费者比较工作得和生产者一样快,否则就会out of memory,严重依赖CAS(compare-and-set);

DelayQueue 是每个元素有延迟的队列;一个元素只有超过延时时间后才会从队列中取出,这对于实现需要延时任务队列时有效。结合ScheduledThreadPoolExecutor 使用。

LinkedBlockingDeque / LinkedBlockingQueue - 可选的有界的linked queue (使用lock实现并发),基于linkedlist实现,使用ReentrantLock实现空/满的条件判断。

LinkedTransferQueue - 基于linkedlist的无界队列,有一组transfer方法,允许生产者直接发送消息给界首镇,这样去除了将元素保存进队列的必要性,这是一个基于CA的无锁集合。

PriorityBlockingQueue - 并发的PriorityQueue

SynchronousQueue - 没有内部容量的堵塞队列,意味着任何插入请求必须等待从队列中移除后才可以插入。

Map

单线程:

HashMap - 通用的

EnumMap - enum keys

Hashtable - 废弃

IdentityHashMap - 对key使用==比较

LinkedHashMap - 保持插入顺序

TreeMap - 对key进行排序

WeakHashMap - 对缓存有用

多线程:

ConcurrentHashMap - 通用的并发map

ConcurrentSkipListMap - 排序的并发map

Set

单线程:

HashSet - 通用set

EnumSet - 枚举集合

BitSet - 位整数

LinkedHashSet - 保持插入顺序

TreeSet - 排序的set

多线程:

ConcurrentSkipListSet - 排序的并发set

CopyOnWriteArraySet - 很少更新,经常来回遍历

相关文章

  • java集合详解

    java集合概述 Java 集合可分为 Collection 和 Map 两种体系 Collection接口:单列...

  • Java集合Collection使用概述

    本文是从性能角度对Java所有集合进行一个实战方面的比较与总结,并且列出在不同集合之间转换的正确方式。 List ...

  • 四 集合 ——第八节 Map集合,HashMap详解

    1、Map集合概述 和Collection集合是两套体系,Collection集合是单列集合java.util.M...

  • 2018-12-21

    Day10 Collection、泛型类 1.Collection集合 1.1 集合的概述 集合是java中提供的...

  • Java基础知识点(九)

    一、Java 中的集合框架(上) 1、Java 中的集合框架概述 JAVA集合框架体系结构:Collection与...

  • Java集合总结

    Java集合总结 概述 Java集合类主要由两个接口派生而出: Collection Map 这两个是Java集合...

  • 四、Java集合

    1. Java集合概述 Java集合主要由两个接口派生而出,Collection和Map|---Collectio...

  • JavaGuide知识点整理——集合常见知识点(上)

    集合概述 Java集合概览 java集合,也叫作容器,主要由两大接口派生而来: Collection接口,主要用于...

  • Java 集合框架(接口)

    核心集合接口概述 Java 集合框架的核心接口,主要由两颗树组成:java.util.Collection、jav...

  • java集合类总结

    Java集合概述 Java提供的众多集合类由两大接口衍生而来: Collection 接口和 Map 接口。为了更...

网友评论

    本文标题:Java集合Collection使用概述

    本文链接:https://www.haomeiwen.com/subject/xzhxhqtx.html