回顾
集合框架
两个重点------ArrayList和HashSet.
Vector/ArraysList/LinkedList区别
Vector | ArraysList | LinkedList | |
---|---|---|---|
底层实现 | 数组 | 数组 | 链表 |
线程安全 | 安全 | 不安全 | 不安全 |
增删效率 | 较低 | 较低 | 高 |
扩容 | *2 | *1.5 | -------- |
(>>)运算级最低,记得加括号。
常用Api
List*
remove()的两种删除
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 | isEmpty() | 集合为空 |
11 | itreator() | 迭代器(遍历和删除) |
12 | toString() | 转换为字符串 |
数组比较
Stack栈
后进先出
栈是一种特殊的数据结构,后进先出。
结构
底层还是数组。Vector派生出来的,继承Vector。
Api方法
push():入栈
peek():栈顶
取栈顶不会删除栈顶。
System.out.println("栈顶:"+stack.peek());//栈顶------最后进栈的
pop():出栈
出栈会删除栈顶元素。
System.out.println("wu:"+stack.pop());//出栈
完整代码:
package com.ffyc.Stack;
import java.util.Stack;
public class StackDemo01 {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
//存------压栈
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
System.out.println("栈:"+stack);
System.out.println("栈顶:"+stack.peek());//栈顶------最后进栈的
//System.out.println("wu:"+stack.pop());//出栈
//倒序打印
while (stack.size()>0){
int temp = stack.pop();//pop()后当前的栈顶元素自动删除
System.out.println(temp);
}
}
}
反转"hello"
中间的回文数量的题可以用
计算器题目
准备工作
length-1 否则越界
Queue队列
offer()进
队头添加数据
poll()出
从队头取出元素/数据
peek()顶
取出最先进队的元素。第一个offer()进去的元素。
是下面代码的输出:queue.peek--->1