应用场景:
- 无法预测存储数据的数量
- 同时存储具有一对一关系的数据
- 需要进行数据的增删
- 数据重复问题
集合概览
List(列表)
- List是元素有序并且可以重复的集合,称为序列。
- List可以精确控制每个元素的插入位置,或者删除某个为止的元素。
- List两个主要实现类是ArrayList 和 LinkedList。
ArrayList 和 LinkedList 两者的数据存储方式是不同的:
- ArrayList :和数组相似,但是长度可以动态增长,在内存中的一片连续存储空间进行存储
- LinkedList:本身是链表
Set
无序、不重复集合。
HashSet
- HashSet是Set的一个重要实现类,称为哈希集。
- HashSet中元素无需并且不可重复。
- HashSet中只允许一个null元素。
- 具有良好的存取和查找性能。
HashSet底层是hashMap。
遍历HashSet需要使用迭代器方法。
Iterator(迭代器)
- Iterator接口可以以统一的方式对各种集合元素进行遍历
- hasNext()方法检测集合中是否还有下一个元素(返回ture或false)
- next() 方法返回集合中的下一个元素
import java.util.HashSet;import java.util.Set;import java.util.Iterator;public class TestIterator { public static void main(String[] args){ Set s = new HashSet(); s.add("allen"); s.add("ming"); s.add("hello"); Iterator it = s.iterator(); while (it.hasNext()){ System.out.println(it.next()); } }}
Map
- Map中的数据是以键值对(key-value)形式存储的
- key-value以Entry类型的对象实例存在
- 通过key可以快速查找value值
- 不能包含重复的建(key值必须唯一)
HashMap
- 基于哈希表的Map接口实现
- 允许使用null值和null键值
- HashMap中Entry对象时无序排列的
总结
ArrayList
- 底层由数组实现
- 元素有序且可以重复
- 可以动态增长,以满足应用程序的需求
- 元素值可以为null
HashSet
HashMap
- 键不能重复
- 允许使用null值和null键
- HashMap中的Entry对象是无序排列的
Iterator(迭代器)