1.List 链表
特点:元素可重复 、 元素有序 、 提供了基于索引的访问方式
接口:java.util.List<>
。
List<Integer> list = new LinkedList<>();
实现:
-
java.util.ArrayList<>
: 变长数组 -
java.util.LinkedList<>
:双链表
函数:
add()
:在末尾添加一个元素clear()
:清空size()
: 返回长度isEmpty()
: 判空get(i)
:获取第i
个元素set(i,val)
:将第i
个元素设置为val
2.Stack 栈
类: java.uitl.Stack<>
定义:Stack<对象> (<>里面不能是基本类型)
Stack<Integer> stk = new Stack<>();
函数:
push()
:压入元素pop()
:弹出栈顶元素,并返回栈顶元素peek()
:返回栈顶元素size()
:返回长度empty()
:栈是否为空clear()
:清空
3.Queue 队列
接口:java.util.Queue<>
Queue<Integer> q = new LinkedList<>();
实现:
java.util.LinkeList<>
: 双链表java.util.PriorityQueue<>
: 优先队列
默认是小根堆,大根堆写法:new PriorityQueue<>(Collections.reverseOrder())
函数:
add()
:在队尾添加元素remove()
:删除并返回队头isEmpty()
:是否为空size()
:返回长度peek()
:返回队头clear()
:清空
4.Set
特点:元素不可重复 、 元素无序。
接口:java.util.Set<K>
Set<Integer> set = new HasSet<>();
Set<Integer> set = new TreeSet<>();
实现:
java.util.HashSet<K>
: 哈希表 (无序)java.util.TreeSet<K>
:平衡树(有序)
函数:
add()
: 添加函数contains()
:是否包含某元素remove()
:删除元素size()
:返回元素数isEmpty()
:判空clear()
:清空
遍历
for(int x : set)
System.out.println(x);
5.Map
特点: 键(key)在Map中是唯一的,而值(value)可以重复
接口:java.util.Map<K , V>
Set<Integer> set = new HasMap<>();
Set<Integer> set = new TreeMap<>();
实现
java.util.HasMap<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