Java学习笔记之集合

常用集合可分为两大类Collection和Map

Collection分为List和Set

Collection类型下的集合存储的数据为单列数据。

遍历方式包含迭代器(Iterator)和增强for循环。

List

1)  List类型的集合支持直接索引。

2)其中的元素有序(按照添加顺序),可添加任意元素包括null,并且可以重复。

3)每个元素对应一个整数型的序号记载其在集合中的位置,可根据序号存取集合中的元素。

4)可用迭代器(Iterator)、增强for循环、直接索引的方式遍历。

ArrayList底层维护的是一个Object类型的可变数组,便于改查,利于增删。

LinkedList底层维护的是一个双向链表,便于增删,不利于改查。

Vector基本等同于ArrayList,不过Vector是线程安全的。

Set

1)Set类型集合是无序的(不按添加顺序),没有索引。

2)  Set类型集合不允许有重复元素,且最多包含一个null。

3)可用迭代器(Iterator)、增强for循环遍历。

HashSet实际上是HashMap(具体见MAP相关笔记)。

LinkedHashSet实际上是LinkedHshMap,底层维护一共数组+双向链表。所以插入和取出顺序一致

Map

1) Map中保存的数据是双列数据Key-Value(键值对),Key和Value可以是任何引用类型的数据。

2) Map中Key不允许重复,Value可以重复,加入相同Key即替换Value值。

3) Map中Key可以为null但至多有一个null,Value可以为null且数量不限。

4) Map是将Key-Value封装成Node节点保存数据。

5) Map遍历方式见另一个笔记。

HashMap底层是数组+链表+红黑树,键是无序的(存入和取出顺序不一致)。

Hashtable与HashMap基本一致,不过是线程安全的。

LinkdeHshMap底层有双向链表所以键有序(取出和存入顺序一致)。

TreeMap用于键排序。

Pperties用于读取键值对类型文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值