String
- replace(“Str1”, “Str2”):将原字符串的 Str1 替换成 Str2
- split(String s):根据传进来的字符串将原字符串切分成字符串数组
- charAt(index i):返回原字符串索引 i 的字符。(tip:字符可以和任何字符用 == 进行比较,但是字符不能和字符串进行比较!)
- trim( ):返回一个删除了原字符串的首尾空格的字符串,原字符串不变。
- substring(index l, index h):返回原字符串索引 [l, h) 位置的字符串,左闭右开。
- length( ):String 是一个类,所以 length( ) 是方法,不像数组,用的 length 是属性
- valueOf(Object o):将基本的数据类型转换为 String
- matches(“ regex “):使用正则表达式进行字符串匹配 ```java [] : 字符集合 () : 分组 ? : 重复 0 ~ 1 次
- : 重复 1 ~ n 次
- : 重复 0 ~ n 次 . : 任意字符 \. : 转义后的 \d : 数字 \s : 空格 ```
StringBuilder
- append(String s):添加字符串到 StringBuilder 中
- deleteCharAt(int index):删除指定下标的元素(原来 StringBuilder 也有下标)
- reverse( ) 反转 StringBuilder 里有的字符串。
Integer
Integer.parseInt(String s):将字符串 s 转为 Integer 类型
Stack 栈
- add(Object o):入栈顶
- pop( ):栈顶元素出栈,并且返回栈顶元素
- peek( ):返回栈顶元素,但不出栈
- empty( ):判断栈是否为空
- isEmpty( ):也是判断栈是否为空
Queue 队列
- 可用 LinkedList 双向链表来实现 Queue:
Queue<?> queue = new LinkedList<>(); - offer( ):入队
- add( ):也是入队
- poll( ):出队
- peek( ):查看队首元素
List 集合
- toArray( ):将集合转为数组 关于toArray( ):https://juejin.cn/post/
ArrayList 动态数组
- size( ):获得动态数组的长度
- get(Index i):根据索引,获取动态数组中的值
LinkedList 双向链表
- LinkedList 在 Java 中可以用来当作栈,Java 原来的栈 Stack 太老了,但也还可以用
- LinkedList 还可以用来实现 Queue Deque
- addLast( ):在链表尾部插入数据
- removeLast( ):删除链表尾部数据并返回
HashSet
- add( ):添加元素
- contains(Object o):判断是否有重复的元素在 HashSet 中
HashMap 哈希表
- put(key, value):添加键值对
- get(key):取出键为 key 的对应值
- getOrDefault(key, default):取出键为 key 的值,若不存在 key 则返回默认值 default
- containsKey(key):是否包含该键
LinkedHashMap 有序哈希表
- entrySet( ) 返回一个 Set 集合,该 Set 集合包含该有序哈希表的所有键值对的表示;返回的集合的每一个元素可以用 Map.Entry(K, V) 来接收。
Map.Entry
- Map.Entry 是 Map 接口的内部接口,此接口为泛型,定义为Entry
,它表示 Map 中的一个实体(一个key-value对); - 可以用来接收 LinkedHashMap 的 entrySet( ) 方法返回的表示每一个键值对的 Set 集合的每一个元素;
- 接口中有 getKey( ), getValue( ) 方法。
PriorityQueue 优先队列
- Java 中 PriorityQueue 优先队列默认是小根堆,要想换成大根堆需要用 Lambda 表达式重写一下表达式:
Queue<?> pq = new PriorityQuque<>((x, y) -> y - x)
- add(Object o) 将值存进优先队列
- poll( ) 删掉堆顶元素,并返回值
- peek( ) 返回堆顶元素,不删除值
- size( ) 返回优先队列的大小,即元素个数
Deque 单调队列 + 双端队列
- Deque 可用双向链表 LinkedList 去实现:
Deque<?> deque = new LinkedList<>();
- isEmpty( ) 判断队列是否为空。
- peekFirst( )、peekLast( ) 查看队列头部和尾部的元素
- addLast( ) 在队列尾部增加元素
- removeLast( ) 删除队列尾部元素
Math 数学工具类
- Math.max(int a, int b):判断 a 和 b 哪个更大并返回。
- Math.min(int a, int b):判断 a 和 b 哪个更小并返回。
- Math.abs(a - b):返回 a - b 的差的绝对值。
- Math.pow(value, n):计算 value 的 n 次幂并返回结果
Arrays 数组工具类
- Arrays.fill(arr[ ],value):用 value 将数组 arr 填满。
- Arrays.sort(int[] nums):Java 主要排序方法为 java.util.Arrays.sort(),对于原始数据类型使用三向切分的快速排序,对于引用类型使用归并排序。
Random 随机树类
- Random.nextInt(int n):生成 0 ~ n 之间的 int 类型的数,左闭右开:包含 0 不包含 n
运算符
- &:与运算,如
value & 1 == 1判断 value 的二进制形式的最右一位是否为1,是的话 value 就是奇数!
