常用容器¶
1 List¶
接口:java.util.List<>
实现:
java.util.ArrayList<>:变长数组java.util.LinkedList<>:双链表
函数:
add():在末尾添加一个元素clear():清空size():返回长度isEmpty():是否为空get(i):获取第i个元素set(i, val):将第i个元素设置为val
2 栈¶
类:java.util.Stack<>
函数:
push():压入元素pop():弹出栈顶元素,并返回栈顶元素peek():返回栈顶元素size():返回长度empty():栈是否为空clear():清空
3 队列¶
接口:java.util.Queue<>
实现:
java.util.LinkedList<>:双链表java.util.PriorityQueue<>:优先队列- 默认是小根堆,大根堆写法:
new PriorityQueue<>(Collections.reverseOrder())
函数:
add():在队尾添加元素remove():删除并返回队头isEmpty():是否为空size():返回长度peek():返回队头clear():清空
4 Set¶
接口:java.util.Set<K>
实现:
java.util.HashSet<K>:哈希表java.util.TreeSet<K>:平衡树
函数:
add():添加元素contains():是否包含某个元素remove():删除元素size():返回元素数isEmpty():是否为空clear():清空
java.util.TreeSet多的函数:
ceiling(key):返回大于等于key的最小元素,不存在则返回nullfloor(key):返回小于等于key的最大元素,不存在则返回null
5 Map¶
接口:java.util.Map<K, V>
实现:
java.util.HashMap<K, V>:哈希表java.util.TreeMap<K, V>:平衡树
函数:
put(key, value):添加关键字和其对应的值get(key):返回关键字对应的值containsKey(key):是否包含关键字remove(key):删除关键字size():返回元素数isEmpty():是否为空clear():清空entrySet():获取Map中的所有对象的集合Map.Entry<K, V>:Map中的对象类型getKey():获取关键字getValue():获取值
java.util.TreeMap<K, V>多的函数:
ceilingEntry(key):返回大于等于key的最小元素,不存在则返回nullfloorEntry(key):返回小于等于key的最大元素,不存在则返回null