Java学习笔记-数据结构

本文详细介绍了Java集合框架中List、Set、ArrayList、Vector、Map、HashMap、HashTable、HashSet及ConcurrentHashMap等核心组件的特点与应用场景。包括它们之间的区别、是否支持null值、线程安全性以及扩展机制等内容。

一、 List

一个有序的collection,可据下标获取对应元素。允许出现重复元素e1.equals(e2),如果需要还可以允许出现多个null值。

二、Set

如同set的数学定义,不允许出现重复元素。

三、 ArrayList

实现List接口的可变大小数组。扩容时默认1.5倍。与Vector基本一样,只是unsynchronized,若不必线程安全,推荐使用ArrayList。

四、 Vector

扩容时默认double。线程安全的。

五、Map

键值对的映射,无重复键,一键至多映射一值。

六、 HashMap

基于hash table的Map接口的实现。允许null键、null值。非线程安全。Iterator迭代有Fail-Fast机制。容量为 2n2n(power of 2),扩容时容量加倍,达到上限后设为上限值。

七、 HashTable

不允许null健值。继承Dictionary抽象类。Enumerator迭代器不是fail-fast的。初始容量为素数。

八、 HashSet

由hash table(实际为hash map)实现,实现Set接口。一个加壳的hash map。

九、 ConcurrentHashMap

引入分段锁。尚不明白。

初稿,待补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值