集合

本文深入解析了Java集合框架,包括List、Set、Map的主要实现类,如ArrayList、HashSet、HashMap等,阐述了它们的特点、使用场景及内部实现原理。

集合

List

LinkedList

基于链表的实现,允许 null值,常用作队列满足先进先出、后进先出

ArrayList

基于动态数组的实现,允许所有元素包括 null

Vector

类似 ArrayList,但是它是同步的

Stack

Stack继承自Vector,实现了一个后进先出的堆栈

Set

不包含重复元素,最多允许一个 null(因为人家不允许重复),不保证数据的顺序

HashSet

HashSet调用对象的hashCode(),获得哈希码,然后在集合中计算存放对象的位置。通过比较哈希码与equals()方法来判别是否重复。所以,重载了equals()方法同时也要重载hashCode();

SortedSet

TreeSet 类 继承SortedSet接口,能够对集合中对象排序。默认排序方式是自然排序,但该方式只能对实现了Comparable接口的对象排序,java中对Integer、Byte、Double、Character、String等数值型和字符型对象都实现了该接口。

Map

Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供了3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key--value映射。

HashTable

HashTable继承Map接口,实现了一个key--value映射的哈希表。任何非空的对象都可作为key或者value。

线程安全,但是性能低。

HashMap

HashMap和HashTable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key

转载于:https://juejin.im/post/5bf02ea0e51d4509834c9a4c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值