Java 集合对比表手册(类别、接口、实现类、存储方式、有序性、线程安全性、特点)

与数组相比:只能引用类型,长度可变,方法多

类别接口实现类存储方式有序性线程安全性特点
单列集合CollectionListArrayList动态数组有序允许快速随机访问,增删效率低
LinkedList双向链表有序增删操作效率高,随机访问较慢
Vector(弃用)动态数组有序与ArrayList类似,但线程安全
Stack动态数组有序后进先出(LIFO)的栈
SetHashSet哈希表无序不允许重复元素
LinkedHashSet哈希表+链表有序插入顺序访问,较HashSet稍慢
TreeSet红黑树有序基于元素的自然顺序或自定义顺序
QueuePriorityQueue二叉堆无序元素按自然顺序或自定义顺序出队
ArrayDeque动态数组有序双端队列
双列集合MapHashMap哈希表无序允许null键和null值
LinkedHashMap哈希表+链表有序按插入顺序访问
TreeMap红黑树有序基于键的自然顺序或自定义顺序
Hashtable哈希表无序线程安全,不允许null键和null值
Concurrent
HashMap
分段锁哈希表无序高并发环境下效率高
特殊集合EnumSet位向量有序专为枚举类型设计
EnumMap数组有序键为枚举类型
Weak
HashMap
哈希表无序使用弱引用的键,方便垃圾回收
Identity
HashMap
哈希表无序基于引用相等性比较键

集合和数组的区别

  1. 共同点: 都是用于存储数据的容器

  2. 不同点:

    • 存储内容的不同:

      • 数组既可以存储基本类型,也可以存储引用类型

      • 集合只能存储引用类型

    • 存储数量的不同:

      • 数组的长度不可变,一旦确定大小就无法改变

      • 集合的长度可变,是一个可以伸缩的容器

    • 方法不同:

      • 数组中只有Object中定义的方法,以及有一个length属性

      • 集合中可以有很多方法,很丰富

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值