一、栈stack
1、初始化:Stack<Integer> st = new Stack<Integer>();
2、常用方法:
- boolean empty() :测试堆栈是否为空。
- Object peek( ):查看堆栈顶部的对象,但不从堆栈中移除它。
- Object pop( ):移除堆栈顶部的对象,并作为此函数的值返回该对象。
- Object push(Object element):把对象压入堆栈顶部。
- int search(Object element):返回对象在堆栈中的位置,以 1 为基数。
二、队列queue
1、初始化:Queue<String> queue = new LinkedList<>();
2、常用方法:
- add():添加元素到队尾,若队满,会抛出异常
- offer():添加元素到队尾,若队满,会返回false
- element():查看队首元素,若队空,会抛出异常
- peek():查看队首元素,若队空,会返回null
- remove():删除队首元素,若队空,会抛出异常
- poll():删除队首元素,若队空,会返回null
- isEmpty():查看是否为空
- size():查看队列长度
三、双端队列deque
1、初始化:Deque<Integer> levelList=new LinkedList<Integer>();
2、常用方法:(add和offer、remove和poll、get和peek)
- add():添加元素到队尾,为空报异常
- offerFirst() :添加元素到队头,为空返回false
- offerLast() :添加元素到队尾,为空返回false
- push() :添加元素到队头,此处承担栈的作用,等价于addFirst()
- remove(): 删除头元素,为空报异常
- pollFirst() :删除头元素,为空返回null
- pollLast() :删除尾元素,为空返回null
- pop() :删除头元素,此处承担栈的作用,等价于removeFirst()
- getFirst() 查看头元素,为空报异常
- getLast() 查看尾元素,为空报异常
- peekFirst() 查看头元素,为空返回null
- peekLast() 查看尾元素,为空返回null
四、List
- add、remove、contains、size、isEmpty:看名字就知道是干嘛的
- sublist(int fromIndex,int toIndex):类似于subString,切割
- retainAll(list):取两个list的交集
- clear():清除集合中的所有元素
- set(index,element):在指定位置index的数据替换为element
五、Map
- put、remove、containsKey、containsValue、get、clear:跟上面一样,看名字就知道是干嘛的
- keySet():返回当前集合中包含key的Set视图
- values():返回 HashMap 中所有 value 值所组成的 collection view(集合视图)
- entrySet():获取所有键值对
for (Map.Entry<String, Integer> entry : entries) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
- getOrDefault(x,y):获取key为x的value值,若为空,则默认为y,常用来标记次数
map.put(errorCode,map.getOrDefault(errorCode,0)+1); //标记errorCode出现的次数
- isEmpty():用于判空
六、String
- length():返回字符串的字符个数
- toCharArray():将字符串转换成字符数组
- split(String):将字符串按指定内容切开
- contains(String):判断字符串是否包含指定内容
- replaceAll(String,String) :将某个内容全部替换成指定内容
- toUpperCase():将字符串全部转换成大写
- toLowerCase():将字符串全部转换成小写
- charAt(int):得到指定下标位置对应的字符
- indexOf(String):得到指定内容第一次出现的下标
- substring(int):从指定下标一直截取到字符串的最后
- equals(String):判断两个字符串的内容是否一样
- compareTo(String):两边对应的字符依次比较,直至不等为止,返回该字符的ASCII码差值。 如果两个字符串不一样长,可对应字符又完全一样,则返回两个字符串的长度差值
- valueOf():将基本数据类型转换成String类型,可以是字符数组
- trim(): 用于删除字符串的头尾空白符
- join(): 返回一个新字符串,用给定的定界符连接所有元素
//第2个参数是字符串数组
String a = String.join("!",strArray);
//第2个参数是字符串队列
String b = String.join("!",strList);
//第1个参数之后是多个字符串
String c = String.join("!","ni","zhen","hao","kan");
//输出即为"ni!zhen!hao!kan"
七、Integer
- parseInt(String s):将字符串转换成整数,返回的int类型
- toBinaryString(int i):将一个正整数转换成2进制字符串,其他进制的也有对应方法
- toUnsignedString(int i,int radix):将一个正整数转换成r进制字符串(r的范围是[2, 64])
- valueOf(String s):将字符串数字转换成Integer类型对象
- valueOf(String s, int radix):将字符串作为radix进制数,并转换成十进制数输出,返回的是Integer类型
- Integer.MIN_VALUE:integer类型的最小值
- Integer.MAX_VALUE:integer类型的最大值
八、Character
- isDigit(char ch):确定指定字符是否为数字
- isLetter(char ch):确定指定字符是否为字母
- isLowerCase(char ch):确定是否是小写字母字符
- isUpperCase(char ch):确定是否大写字母字符
- toLowerCase(char ch):将字符参数转换为小写
- toUpperCase(char ch):将字符参数转换为大写
- getNumericValue(char ch):将字符转换为int
九、StringBuffer
- append(char c):添加字符到StringBuffer对象的末尾
- insert(int offset,String str):在指定位置插入字符串
- delete(int start,int end):删除指定范围的字符串
- replace(int start,int end,String str):指定范围内的字符串用新的字符串替代
- reverse():将字符串翻转过来
- toString():返回字符串对象
- deleteCharAt(str.length()-1):删除最后一个字符
十、Math
- Math.abs(a):求绝对值
- Math.round(a):四舍五入
- Math.sqrt(a):开平方/平方根
- Math.pow(n,m):n的m次幂
- Math.max(a,b)/Math.min(a,b):获取最大值和最小值
- Math.random():获取0~1之间的随机数(大于等于0小于1)
- Math.ceil(a)/Math.floor(a):向上取整,向下取整
十一、Arrays
- Arrays.sort(int[] arr):排序,默认升序排列;注意,若要重写compareTo()方法,数组不能使用基本数据类型,比如必须为Integer数组,而不是int数组,降序排列参考如下
//常规重写方法
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//返回值大于0交换
return o2-o1;
}
});
//lambda表达式
Arrays.sort(nums, ( Integer a, Integer b) -> { return b-a;});
//第二种lambda表达式
Arrays.sort(strs,(x,y)->x.compareTo(y));
- Arrays.copyOfRange(int[] arr,int begin,int end):从数组中截取几个数并返回一个新的数组
- Arrays.fill(int[] arr,int target):批量赋值
十二、Collections
- Collections.sort(list):对list进行升序排序
- Collections.sort(list,Collections.reverseOrder()):对list进行降序排序
十三、小根堆/大根堆
- 实例化
//小根堆
PriorityQueue<Integer> minQueue = new PriorityQueue<Integer>();
//大根堆
PriorityQueue<Integer> maxQueue = new PriorityQueue<Integer>((o1,o2) -> o2 - o1);
- queue.offer():添加一个元素并返回true 如果队列已满,则返回false
- queue.poll():移除并返问队列头部的元素 如果队列为空,则返回null
- queue.peek():返回队列头部的元素 如果队列为空,则返回null