集合框架源码分析(jdK1.7)(十) 集合框架对比总结

本文详细介绍了Java集合框架中各类集合的特性与应用场景,包括Map、List及Set等接口的不同实现方式,对比了每种实现的数据结构、初始容量及扩容策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle java tutorial官方文档

链接是:https://docs.oracle.com/javase/tutorial/collections/index.html

 

1.核心集合接口层次关系


同类对比

Map系列

名称

特点

数据结构

初始容量(默认)

扩容方式

HashMap

键值对,存Null值

散列表

16

容量使用75%(负载因子)

扩大1倍

HashTable

1.所有方法有sychronized修饰,线程安全

2.键值对,不可存放null值

散列表

11

容量使用75%(负载因子)

扩大1倍

TreeMap

键值对,不可存放null值

红黑树(平衡二叉树)

 

LIst系列

名称

特点

数据结构

初始容量(默认)

扩容方式

ArrayList

查询速度快

数组

10

每次新增都会检查容量,容量不足扩大50%

LinkList

插入删除速度快

双向链表

Vector

所有方法有sychronized修饰,线程安全(不考率线程安全不可建议使用,存在开销

数组

10

扩大原来的1倍

 

Set

名称

特点

数据结构

初始容量(默认)

扩容方式

HashSet

无重复结果且结果无需

散列表(HashMap<E,Object>)

16

容量使用75%(负载因子)

扩大1倍

TreeSet

无重复结果且结果有序

红黑树

(NavigableMap<E,Object>)

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值