文章目录
Java集合类体系结构
单列集合
一个独立于元素的序列,一次添加一个元素,实现Collection接口。
List集合:存储有序、有索引,允许有重复元素,包括ArrayList、LinkedList等。
Set集合:存储无序,没有索引,不允许有重复元素,包括TreeSet、HashSet、LinkedHashSet等。
Queue集合:按照排队规则确定对象产生顺序,包括ArrayDeque、PriorityQueue等。
双列集合
也叫映射,一组成对的“键值对”对象,一次添加两个元素,允许通过键查找值,实现Map接口。
Map集合包括TreeMap、HashMap、LinkedHashMap等。
单列集合(Collection)
Collection中的常用方法
Collection<E>的方法 | 说明 |
---|---|
boolean add(E e) | 添加单个元素e |
boolean remove(Object o) | 如果存在则移除元素o |
void clear() | 移除集合中的所有元素 |
boolean contains(E e) | 判断是否存在元素e |
int size | 返回集合中元素个数 |
Iterator<E> iterator() | 返回一个迭代器用来遍历集合中的元素 |
List集合常用方法
List<E>的方法 | 说明 |
---|---|
void add(int i, E e) | 在给定位置i添加元素e |
E remove(int i) | 删除并返回给定位置i的元素 |
E get(int i) | 获取给定位置的元素 |
E set(int i) | 修改给定位置的元素并返回原本的值 |
单列集合的遍历
Java中单列集合的遍历方式:Iterator和ListIterator-CSDN博客
双列集合(Map)
Map中的常用方法
Map<K,V>的方法 | 说明 |
---|---|
V get(Object key) | 获取与键key对应的值,没有则返回null |
default V getOrDefault(Object key,V defaultValue) | 获取与键key对应的值,没有则返回默认值defaultValue |
V put(K key, V value) | 将关联的键key和值value放入映射,如果键存在则取代原本关联的值并返回原值,如果键不存在则返回null |
boolean containsKey(Object key) | 判断是否存在键key |
boolean containsValue(Object value) | 判断是否存在值value |
Map集合的遍历
常用集合使用场景分析
对List的选择:存储有序、元素重复
ArrayList集合【首选】:基于数组,整体性能更好。
LinkedList集合:基于链表,集合中元素可以重复,当增删操作明显多于查询操作时选用。
对Set的选择:元素去重
HashSet集合【首选】:基于哈希表,性能基本上特别是添加和查询元素总比TreeSet好。
TreeSet集合:基于红黑树,可以维持元素的排序状态。
LinkedHashSet集合:基于哈希表和双链表,可以保证存取顺序,与HashSet相比,添加元素较慢,较迭代速度更快。
对Map的选择:映射关系
HashMap集合【首选】:基于哈希表。
TreeMap集合:基于红黑树,只有在要求Map始终保持有序时才使用。
LinkedHashMap:基于哈希表和双链表,可以保证存取顺序,与HashMap相比,添加元素较慢,较迭代速度更快。
p集合:基于红黑树,只有在要求Map始终保持有序时才使用。
LinkedHashMap:基于哈希表和双链表,可以保证存取顺序,与HashMap相比,添加元素较慢,较迭代速度更快。