Java 常用容器
Java 常用容器
写在前面
Java在算法比赛中经常用到一些容器类,类比C++,下面的这些容器及其实现需要我们常记,不管是在算法竞赛中还是在开发中,都有使用需求,需要牢记掌握
一、 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<T>
实现:
java.util.HashSet<T>
// 哈希表java.util.TreeSet<T>
// 平衡树
函数:
add()
// 添加元素contains()
// 是否包含某个元素remove()
// 删除元素size()
// 返回元素数isEmpty()
// 是否为空clear()
// 清空
java.util.TreeSet
中多的函数:
ceiling(key)
// 返回大于等于key的最小元素,不存在则返回nullfloor(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的最小元素,不存在则返回nullfloorEntry(key)
// 返回小于等于key的最大元素,不存在则返回null