1.ArrayList/Vector/LinkedList区别
Vector | ArrayList | LinkedList | |
底层实现 | 数组 | 数组 | 链表 |
线程安全 | 安全 | 不安全 | 不安全 |
增删 | 较低 | 较低 | 效率高 |
扩容 | x2 | x1.5 | —— |
2.常用api
1>List、set
api | 解释 | |
1 | add() | 添加 |
2 | remove(index) | 索引删除 |
3 | remove(Object) | 对象删除 |
4 | set(index,e)[set] | 修改 |
5 | clear() | 清空 |
6 | size() | 长度 |
7 | get(index)[list] | 查询 |
8 | indexOf()[list] | 找出位置 |
9 | contains | 包含 |
10 | toString() | 内容转换为字符串 |
11 | isEmpty() | 集合为空 |
12 | iterator() | 迭代器(遍历,删除) |
2>已知有一个List数据,list=={1,2,3,3}; 如何去重?
代码如下
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(3);
Set<Integer> set = new LinkedHashSet<>();
set.addAll(list);
list.clear();
list.addAll(set);
System.out.println(list);
3.Stack栈
1> 栈是一种特殊的数据结构:后进先出
2> Stack结构
3> 如图所示
4> push() 入栈
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
5>pop() 出栈:删除栈顶
while(stack.size()>0){
int t=stack.pop();
System.out.println(t);
}
6> peek() 拿到栈顶的数据,不删除
System.out.println("栈顶:" + stack.peek());