常用容器
List
接口:java.util.List<>。
实现:
- java.util.ArrayList<>:变长数组
- java.util.LinkedList<>:双链表
函数:
- add():在末尾添加一个元素
- clear():清空
- size():返回长度
- isEmpty():是否为空
- get(i):获取第i个元素
- set(i, val):将第i个元素设置为val
栈
类:java.util.Stack<>
函数:
- push():压入元素
- pop():弹出栈顶元素,并返回栈顶元素
- peek():返回栈顶元素
- size():返回长度
- empty():栈是否为空
- clear():清空
队列
接口:java.util.Queue<>
实现:
-
java.util.LinkedList<>:双链表
-
java.util.PriorityQueue<>:优先队列
默认是小根堆,大根堆写法:new PriorityQueue<>(Collections.reverseOrder())
函数:
- add():在队尾添加元素
- remove():删除并返回队头
- isEmpty():是否为空
- size():返回长度
- peek():返回队头
- clear():清空
Set
接口:java.util.Set
实现:
- java.util.HashSet
:哈希表 - java.util.TreeSet
:平衡树
函数:
- add():添加元素
- contains():是否包含某个元素
- remove():删除元素
- size():返回元素数
- isEmpty():是否为空
- clear():清空
java.util.TreeSet多的函数:
- ceiling(key):返回大于等于key的最小元素,不存在则返回null
- floor(key):返回小于等于key的最大元素,不存在则返回null
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的最小元素,不存在则返回null
- floorEntry(key):返回小于等于key的最大元素,不存在则返回null
只有栈是类,其它都是接口。
Java栈的代码写的并不好,用LinkedList代替栈是更好的选择。队列同样可以用LinkedList。
💬 评论