常用方法
Arrays.sort()排序
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {9, 2, 5, 1, 7, 3};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // 输出: [1, 2, 3, 5, 7, 9]
}
}
获取str中的第i-1个字符
str.charAt(i);
String[] str = {"abc","def"};
System.out.println(str[0].charAt(0));
//输出 a
去除字符串str开头和末尾的空格
str.trim()
substring截取字符串str.subtring(从此下标,往后要这么多个)
String[] str = {"abc","def"};
System.out.println(str[0].substring(0,3));
//输出abc
判断字符串某位是不是数字
Character.isDigit(s.charAt(i))
//true 或者 false
######删除字符串中的某一字符(str得是StringBuilder或StringBuffer)
str.deleteCharAt(i);
把String类型转换为StringBuilder或StringBuffer
String str = "Hello, StringBuilder!";
StringBuilder stringBuilder = new StringBuilder(str);
char[] arr = s.toCharArray();
这段代码是将字符串s
中的每个字符依次提取出来,然后把这些字符存储到字符数组arr
中。
判断ch中是否含有"aeiouAEIOU"中的一个
public boolean isVowel(char ch) {
return "aeiouAEIOU".indexOf(ch) >= 0;
}
调试模式时,高亮的行,是将要执行的语句(还未执行)
ctrl+shift+F8 查看程序所有断点
IDEA块缩进:
tab
shift+tab
String.toCharArray()
是一个内置的方法,用于将字符串(String
类型)转换为字符数组(char[]
类型)。这个方法非常有用,当你需要直接访问或操作字符串中的每个字符时,它可以提供便利。(java中的字符串String是不可变的,相比之下,StringBuffer
(线程安全) 和 StringBuilder
(性能优) 类提供了可变的字符串操作。)
char[] charArray = someString.toCharArray();
例子👇
public class Main {
public static void main(String[] args) {
String exampleString = "Hello, World!";
char[] charArray = exampleString.toCharArray();
// 打印字符数组
for (char ch : charArray) {
System.out.print(ch + " ");
}
}
}
// 正则匹配连续的空白字符作为分隔符分割(s为String)
List<String> wordList = Arrays.asList(s.split("\\s+"));
// 反转数组
Collections.reverse(wordList);
Math.min和Math.max
比较两个或多个数值,并返回其中的最小值或最大值
例子👇
Math.min(leftMin[i - 1], nums[i]);
Math.max(rightMax[i + 1], nums[i]);
统计数组中的累加和👇
public int pivotIndex(int[] nums) {
int total = Arrays.stream(nums).sum();
数组计长用.length 字符串计长用.length()
单词反转👇:
//输入:s = "the sky is blue"
//输出:"blue is sky the"
class Solution {
public String reverseWords(String s) {
// 除去开头和末尾的空白字符
s = s.trim();
// 正则匹配连续的空白字符作为分隔符分割
List<String> wordList = Arrays.asList(s.split("\\s+"));
Collections.reverse(wordList);
return String.join(" ", wordList);
}
}
哈希表(快速查询)
HashMap<Integer, Integer> cnt = new HashMap<>();
常用方法
- put(K key, V value):向
HashMap
中添加一个键值对。如果键已存在,则用新值替换旧值。 - get(Object key):根据键获取对应的值。如果键不存在,返回
null
。 - remove(Object key):根据键移除键值对。
- clear():清空
HashMap
中的所有映射。 - size():返回
HashMap
中的键值对数量。 - containsKey(Object key):判断
HashMap
是否包含指定的键。 - containsValue(Object value):判断
HashMap
是否包含指定的值。
hashmap.merge(key, value, remappingFunction)
把两个值处理之后的结果作为value去更新map中以key为键的值,最后再将这个值返回给调用者。
merge
方法的第三个参数是一个BiFunction
,它接收两个参数:当前键对应的旧值(如果存在)和你试图合并的新值,并返回一个结果值作为合并后的值。这个函数的设计完全取决于你的需求,你想怎么实现都可以,只要符合函数的签名要求即可。
注:hashmap 是 HashMap 类的一个对象。
参数说明:
key - 键
value - 值
remappingFunction - 重新映射函数,用于重新计算值
Iterator迭代器
不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。——阿里巴巴开发手册第一章第十一条强制约规
Iterator接口包含了三个主要方法:
hasNext()
:检查是否还有更多的元素可以迭代。next()
:返回迭代的下一个元素。remove()
:从底层集合中移除迭代器返回的最后一个元素。
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
Lambda表达式
类似JS中的箭头函数
(parameters) -> { statements; }