--- title: "00-常用容器" created: 2025-12-02 tags: - 项目 aliases: - 常用容器 --- # 常用容器 ## 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 实现: - java.util.HashMap:哈希表 - java.util.TreeMap:平衡树 函数: - put(key, value):添加关键字和其对应的值 - get(key):返回关键字对应的值 - containsKey(key):是否包含关键字 - remove(key):删除关键字 - size():返回元素数 - isEmpty():是否为空 - clear():清空 - entrySet():获取Map中的所有对象的集合 - Map.Entry:Map中的对象类型 - getKey():获取关键字 - getValue():获取值 java.util.TreeMap多的函数: - ceilingEntry(key):返回大于等于key的最小元素,不存在则返回null - floorEntry(key):返回小于等于key的最大元素,不存在则返回null 只有栈是类,其它都是接口。 Java栈的代码写的并不好,用LinkedList代替栈是更好的选择。队列同样可以用LinkedList。 ## 练习题 [[03-模拟栈|模拟栈]] [[04-模拟队列|模拟队列]] [[01-和为S的两个数字|和为S的两个数字]] [[02-最小的k个数|最小的k个数]] [[05-邻值查找|邻值查找]] --- **项目分区导航**: [[05-最大公约数|最大公约数]] ⬅️ | 00-常用容器 | ➡️ [[01-和为S的两个数字|和为S的两个数字]]