总图
参考:https://www.runoob.com/java/java-collections.html
Collction
List 有序,可重复
ArrayList 数组
LinkList 链表
Vector 数组,同步的,性能不好
Stack 栈,同步的,性能不好
Set 不可重复集合
HashSet 散列
LinkHashSet 有序散列
TreeSet 有序二叉树
Queue
Iterator
Iterator是一个接口,只有3个方法,如下:
一边循环一边遍历比较实用
源码:https://blog.csdn.net/q5706503/article/details/85230897
List<Integer> a = new ArrayList<>();
a.add(1);
a.add(2);
a.add(3);
Iterator<Integer> iterator = a.iterator();
while (iterator.hasNext()) {
Integer e = iterator.next();
iterator.remove();
}
Map
HashMap
LinkHashMap
在HashMap的基础上,每个Node<K,V>都保存前驱和后继节点的引用,形成双向链表
TreeMap
基于红黑树实现
WeakHashMap
HashTable
集合遍历删除
快速失败机制与ConcurrentModificationException
参考:https://www.cnblogs.com/goody9807/p/6432904.html
List集合遍历删除
- Iterator遍历,使用Iterator.remove()删除
- fori循环,倒序遍历,防止删除时下标改变
- 增强for循环,不能删除元素。增强for循环是使用Iterator遍历,不能再使用集合remove方法删除
- foreach循环,不能删除元素