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 集合


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 就是奇数!