Java集合是否有序的问题(List、Set、Map)

先搞清楚

是否有序指的是集合中的元素是否会按照插入的先后顺序来存储,而不是指集合中的元素本身是否有序

List

public interface List<E> extends Collection<E>

List 中的元素都是有序的,其常见的实现类有 ArrayList、LinkedList 和 Vector,这三者都是有序的

Set

public interface Set<E> extends Collection<E>

Set 中的元素都是无序的,并且不能重复

它是根据对象的哈希值来确定元素在集合中的存储位置,所以是无序的;保证元素唯一性的方式依赖于 hashCode() 和 equals() 方法

其常见的实现类有 HashSet、LinkedHashSet,HashSet 的底层实现其实是由 HashMap 支持的,因此其存储结构其实也是哈希表,但要注意 Set 是单列集合,即不是以<key, value>的形式存储的

注意LinkedHashSet 是有序的

Map

public interface Map<K,V>

Map 中的元素都是无序的,其实的元素是以<key, value>的形式存储的,其常见的实现类有 HashMap、TreeMap 和 LinkedHashMap

注意LinkedHashMap 是有序的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值