一、Integer类
Integer.bitCount(int i):计算整数二进制中 1 的个数Integer.highestOneBit(int i):返回最高位 1 所在的位置对应的整数Integer.lowestOneBit(int i):返回最低位 1 所在的位置对应的整数- Integer.reverse():将
int类型整数的二进制位进行完全反转,并返回反转后的整数
Integer.reverse(int i) | 反转 32 位整数的二进制位 | 颠倒二进制位 |
Integer.bitCount(int i) | 计算二进制中 1 的个数 | 位 1 的个数、汉明距离 |
Integer.highestOneBit(int i) | 返回最高位 1 对应的整数 | 找最高有效位、计算 2 的幂 |
Integer.parseInt(String s, int radix) | 将指定进制的字符串转为整数 | 进制转换(如二进制转十进制) |
Integer.toBinaryString(int i) | 将整数转为二进制字符串 | 进制转换、二进制输出 |
Long.reverse(long i) | 反转 64 位长整数的二进制位 | 处理 64 位整数的位反转 |
二、java.lang.String&java.lang.StringBuilder(字符串相关)
字符串类是算法题的高频考点,很多内置方法可以直接解决子串、反转、拼接等问题。
| 方法 | 作用 | 适用场景 |
|---|---|---|
String.reverse()(需转成 StringBuilder) | 反转字符串 | 回文判断、反转字符串 |
String.indexOf(String str) | 查找子串首次出现的位置 | 子串匹配、字符串查找 |
String.substring(int begin, int end) | 截取子串 | 子串提取、分割字符串 |
String.toCharArray() | 转为字符数组 | 字符级别的遍历与操作 |
StringBuilder.append(...) | 高效拼接字符串 | 避免频繁字符串拼接的性能问题 |
StringBuilder.deleteCharAt(int index) | 删除指定位置的字符 | 字符串删除、括号匹配等 |
三、java.util.Arrays(数组相关)
数组类的排序、查找、填充方法,是数组类题目中的常客。
| 方法 | 作用 | 适用场景 |
|---|---|---|
Arrays.sort(int[] a) | 对数组进行升序排序 | 数组排序、两数之和、三数之和 |
Arrays.binarySearch(int[] a, int key) | 二分查找目标值的索引 | 有序数组的查找问题 |
Arrays.copyOf(int[] original, int newLength) | 复制并扩容数组 | 数组扩容、合并数组 |
Arrays.fill(int[] a, int val) | 将数组所有元素填充为指定值 | 初始化数组、重置数组 |
四、java.util.Collections(集合相关)
集合类的工具方法,在处理 List、Set、Map 等集合时非常实用。
| 方法 | 作用 | 适用场景 |
|---|---|---|
Collections.reverse(List<?> list) | 反转列表元素 | 反转链表、反转列表 |
Collections.sort(List<T> list) | 对列表进行升序排序 | 列表排序、TopK 问题 |
Collections.binarySearch(List<? extends Comparable<? super T>> list, T key) | 二分查找列表中的元素 | 有序列表的查找 |
Collections.swap(List<?> list, int i, int j) | 交换列表中两个位置的元素 | 数组 / 列表交换元素、排序算法 |
五、java.math.BigInteger&java.math.BigDecimal(大数相关)
处理超出基本数据类型范围的数值时,这两个类是必备工具。
| 方法 | 作用 | 适用场景 |
|---|---|---|
BigInteger(String val, int radix) | 将指定进制的字符串转为大整数 | 超长二进制 / 十进制字符串转数 |
BigInteger.add(BigInteger val) | 大整数加法 | 二进制求和、大数加法 |
BigInteger.multiply(BigInteger val) | 大整数乘法 | 大数乘法、阶乘计算 |
BigInteger.toString(int radix) | 将大整数转为指定进制的字符串 | 大数转二进制 / 十六进制字符串 |
六、java.util.Stack&java.util.Deque(栈 / 队列相关)
栈和队列是解决括号匹配、单调栈、滑动窗口等问题的核心数据结构,Java 提供了现成的实现。
| 方法 | 作用 | 适用场景 |
|---|---|---|
Stack.push(E item)/Stack.pop()/Stack.peek() | 栈的压入、弹出、查看栈顶 | 括号匹配、有效的括号、逆波兰表达式 |
Deque.addLast(E e)/Deque.pollFirst() | 双端队列的队尾添加、队头 弹出 | 滑动窗口最大值、队列实现栈 |