美文网首页
集合:java中的集合有哪些?有什么区别?

集合:java中的集合有哪些?有什么区别?

作者: 抄无止境 | 来源:发表于2019-10-23 14:32 被阅读0次
image.png
ConcurrentHashMap/ConcurrentHashSet

底层哈希实现的同步 Map(Set)。效率高,线程安全。使用系统底层技术实现线程安全。
量级较 synchronized 低。key 和 value 不能为 null。

ConcurrentSkipListMap/ConcurrentSkipListSet

底层跳表(SkipList)实现的同步 Map(Set)。有序,效率比 ConcurrentHashMap 稍低。

List

1.ArrayList集合
  • 底层数据结构是数组,查找快,增删慢。
  • 线程不安全的,效率高
2. Vector集合
  • 底层数据结构是数组,查询快,增删慢
  • 线程安全的,效率也很高。
3.LinkedList集合
  • 底层数据结构是链表,查询慢,增删快
  • 线程不安全,效率高
CopyOnWriteArrayList
  • 写时复制集合。写入效率低,读取效率高。
  • 每次写入数据,都会创建一个新的底层数组。

Set集合 (元素不可重复,元素唯一)

1.Hashset集合

非线程安全的

  • 底层数据结构是哈希表,哈希表依赖两个方法hascode ()和equals()方法
  • 两个方法的执行顺序:
      首先判断hascode()值是否相同
      是:继续执行equals()方法,看其返回值
      是true:说明元素重复,不添加
      是false:就直接添加元素
      否:就直接添加到集合
2.TreeSet集合

非线程安全的

  • 底层数据结构是二叉树
3.LinkedHashSet

Map

1.HashMap

非线程安全的
底层数据结构是哈希表

2.TreeMap

非线程安全的
底层数据结构是二叉树

1.HashTable

线程安全的

LinkedHashMap
ConcurrentHashMap
ConcurrentSkipListMap

java中的集合的选择

根据实际需求来选择合适的集合。

1.单列还是双列?

单列就选Collection类型的
双列选Map类型的

2.选择单列后

  看元素是否唯一?
    是: 选择Set集合
    否: 选择List集合
  看元素是否排序?
    是:TreeSet;
    否:HashSet
  看安全性高低?
    高:Vector
    低:ArrayList 或LinkedList
  增删多:LinkedList
  查询多:ArrayList

相关文章

  • 集合:java中的集合有哪些?有什么区别?

    ConcurrentHashMap/ConcurrentHashSet 底层哈希实现的同步 Map(Set)。效率...

  • ConcurrentHashMap

    Java中的同步集合与并发集合有什么区别?https://blog.csdn.net/u014308482/art...

  • 集合相关问题

    Java有哪些集合框架?Java的集合框架主要包括两个集合类型的容器:集合(Collection)和图(Map)。...

  • Java中集合类框架及基本接口

    [ ] 介绍Java中的Collection FrameWork。集合类框架的基本接口有哪些 [ ] List, ...

  • C. Collections

    1.Java8中跟集合相关的特性有哪些? Java8带来主要的变化在集合的API,一些变化如下: ∆ 1.Java...

  • Javase--集合面试题收集

    Java 中常见集合 集合这方面的考察相当多,这部分是面试中必考的知识点。 1)说说常见的集合有哪些吧? 1 Co...

  • 集合框架Map的分析

    集合框架Map的分析 Map有哪些实现?HashTable、HashMap和TreeMap有什么区别? 一、基础知...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • Java集合的分类有哪些?

    Java集合是什么?Java中的集合就像一个容器,专门用来存储Java对象(实际上是对象的引用,但习惯上称为对象)...

  • Java(1.8) 集合中的LinkedList

    java(1.8)集合中的HashSetJava(1.8) 集合中的ArrayList Java(1.8)集合类中...

网友评论

      本文标题:集合:java中的集合有哪些?有什么区别?

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