java中的容器
(1)List
接口:java.util.List<>
实现:
java.util.ArrayList<>:变长数组
java.util.LinkedList<>:双链表
函数:
add():在末尾添加一个元素
clear():清空
size():返回长度
isEmpty():是否为空
get(i):获取第i个元素
set(i, val):将第i个元素设置为val
代码:
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(10);
System.out.println(list.isEmpty());
(2)栈
类:java.util.Stack<>
函数:
- add():在队尾添加元素
- remove():删除并返回队头
- isEmpty():是否为空
- size():返回长度
- peek():返回队头
- clear():清空
代码:
Stack<Integer> stk=new Stack<>();
stk.push(1);
stk.push(2);
stk.push(10);
System.out.println(stk.pop());
System.out.println(stk.peek());
(3)队列
接口:java.util.Queue<>
实现:
- java.util.LinkedList<>:双链表
- java.util.PriorityQueue<>:优先队列
- 默认是小根堆,大根堆写法:new PriorityQueue<>(Collections.reverseOrder())
函数:
-
add():在队尾添加元素
-
remove():删除并返回队头
-
isEmpty():是否为空
-
size():返回长度
-
peek():返回队头
-
clear():清空
代码:
Queue<Integer> q=new LinkedList<>();//不能用ArrayList<>() q.add(1); q.add(2); q.add(10); System.out.println(q.remove()); System.out.println(q.peek()); Queue<Integer> q=new PriorityQueue<>();//小根堆,小的在前面 q.add(2); q.add(1); q.add(10); q.remove(); System.out.println(q.peek());