List
接口:java.util.List<>
。
实现(一个接口只能包含所要实现的函数,而实现是在类里面实现的,可以有自己的逻辑):
java.util.ArrayList<>
:变长数组
java.util.LinkedList<>
:双链表
<>中填类型的对象,如果是int
就是Integer
,在idea中鼠标点到list后alt加回车选择导入类即可
函数:
括号内加入名称即可
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<K>
实现:
java.util.HashSet<K>
:哈希表(o(1)但无序)java.util.TreeSet<K>
:平衡树(o(n)但有序)
函数:
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