集合类型 | 描述 |
---|---|
ArrayList | 动长度的索引序列 |
LinkedList | 高效插入移除的有序序列 |
ArrayDeque | 循环数组实现的双端队列 |
HashSet | 没有重复元素的无序集合 |
TreeSet | 有序集 |
EnumSet | 包含枚举类型的集合 |
LinkedHashSet | 记住元素插入次序的集合 |
PriorityQueue | 允许高效删除最小元素的集合 |
HashMap | 储存键值对的数据结构 |
TreeMap | 键值有序排列的映射表 |
EnumMap | 属于枚举类型的键值映射表 |
LinkedHashMap | 记住键值对添加次序的银映射表 |
WeakHashMap | 自动回收值的映射表 |
IdentityHashMap | 可以用==比较键值的映射表 |
1 链表
public class LinkedListTest
{
public static void main(String[] args)
{
List<String> a = new LinkedList<>();
a.add("Amy");
a.add("Carl");
a.add("Erica");
List<String> b = new LinkedList<>();
b.add("Bob");
b.add("Doug");
b.add("Frances");
b.add("Gloria");
// merge the words from b into a
ListIterator<String> aIter = a.listIterator();
Iterator<String> bIter = b.iterator();
while (bIter.hasNext())
{
if (aIter.hasNext()) aIter.next();
aIter.add(bIter.next());
}
System.out.println(a);
// remove every second word from b
bIter = b.iterator();
while (bIter.hasNext())
{
bIter.next(); // skip one element
if (bIter.hasNext())
{
bIter.next(); // skip next element
bIter.remove(); // remove that element
}
}
System.out.println(b);
// bulk operation: remove all words in b from a
a.removeAll(b);
System.out.println(a);
}
}
2 数组列表
本质是用数组储存数据
3 散列集
就是用HashCode进行存储,把hashCode值对空间数取余,就把该对象放到这个空间。如果满了就扩大空间数呗!
4 树集
插入的时候进行排序
5 队列与双端队列
6 优先级队列
总是把最小的元素删除