常见的java集合类有哪些

Java集合类包括线程安全如Hashtable,ConcurrentHashMap和Vector,以及线程不安全如HashMap,ArrayList。ArrayList基于数组,适合查询,不适合频繁增删。LinkedList适合增删,查询较慢。TreeSet使用红黑树实现,保证元素唯一且有序。Map中的HashMap是非同步的,而HashTable是线程安全的。LinkedHashMap保持插入顺序,TreeMap按key排序。
摘要由CSDN通过智能技术生成

常见的java集合类有:

线程安全的:Hashtable,ConcurrentHashMap,Vector,Stack(栈)

线程不安全的:HashMap,ArrayList,LinkedList,HashSet,TreeSet,TreeMap

(详解如下)

如下图所示,java集合类主要由两个跟接口Collection和Map派生出来的,Collection派生出来了三个子接口,分别是List,Set,Queue,具体派生关系见下图:

  • ArrayList:数组列表,或者说是动态数组,底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素。

  • LinkedList: 底层数据结构是双向链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素(JDK1.6 之前为循环链表,JDK1.7 取消了循环。)

  • Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素

  • LinkedHashSet底层数据结构采用链表和哈希表共同实现,链表保证了元素的顺序与存储顺序一致,哈希表保证了元素的唯一性。线程不安全,效率高。

  • TreeSet底层数据结构采用红黑树来实现,元素唯一且已经排好序

List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合;Map代表的是存储key-value对的集合,可根据元素的key来访问value;

Map相关集合类:

  • HashMap:线程不安全,HashMap存储的值是没有顺序的,根据key的HashCode值来存储数据,根据key来获取他的value值,具有很快的访问速度。最多只允许一个key值为Null,多个时会覆盖,允许多条记录的Value为null。

  • TreeMap:线程不安全,基于红黑树实现,保存的数据按照key值默认按升序排序,TreeMap不允许key的值为null。是非同步的。

  • HashTable:所有方法都加了synchronized关键字,线程安全,Key和value的值都不能为null,支持线程的同步,也就是任意一个时刻只能有一个线程写HashTable,这也导致了HashTable写入数据的时候会比较慢。

  • LinkedHashMap:保存了记录的插入顺序,key和value都可以为空,是非同步的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值