Java高频方法总结
1. 数组转字符串打印: System.out.println(Arrays.toString(array));
用途:快速打印数组内容,避免直接打印数组时输出的是内存地址。
2. 字符串分割为列表: List<String> list = Arrays.asList(input.split(" "));
用途:将字符串按空格分割,并转换为List。注意:这个List是Arrays的内部类,固定大小,不能增删。
3. 集合初始化(例如使用ArrayList): List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
用途:创建一个可变的ArrayList,并初始化一些元素。
4. 快速创建不可变集合(Java 9+): List<String> list = List.of("a", "b", "c");
用途:创建一个不可变的列表。
5. 数组排序: Arrays.sort(array);
用途:对数组进行升序排序。
6. 集合排序: Collections.sort(list);
用途:对List进行升序排序。
7. 遍历集合(使用增强for循环):
for (String s : list) { ... }
用途:遍历集合中的每个元素。
8. 使用迭代器遍历集合:
Iterator<String> it = list.iterator(); while (it.hasNext()) { String s = it.next(); ... }
用途:遍历集合,并可以在遍历过程中安全地删除元素。
9. 集合转数组:
String[] array = list.toArray(new String[0]);
用途:将List转换为数组。
10. 从控制台读取输入(使用Scanner):
Scanner scanner = new Scanner(System.in); String line = scanner.nextLine();
用途:读取一行输入。
11. 字符串操作:
判断字符串是否为空:str.isEmpty() 或 str.length()==0
判断字符串是否为空白(包括空格):str.trim().isEmpty() 或 Java 11+的str.isBlank()
获取子字符串:str.substring(startIndex, endIndex)
查找字符或子字符串:str.indexOf(subStr), str.lastIndexOf(subStr)
字符串替换:str.replace(oldChar, newChar) 或 str.replaceAll(regex, replacement)
字符串分割:str.split(regex)
字符串连接:String.join(delimiter, elements) 或 使用StringBuilder
12. 集合框架常用方法:
添加元素:list.add(element), set.add(element), map.put(key, value)
移除元素:list.remove(index) 或 list.remove(object), set.remove(object), map.remove(key)
检查包含:list.contains(object), set.contains(object), map.containsKey(key)
获取大小:list.size(), set.size(), map.size()
13. 文件读写(简单示例):
读取文件:List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);
写入文件:Files.write(Paths.get("file.txt"), content.getBytes(StandardCharsets.UTF_8));
14. 使用try-with-resources处理资源(如文件流):
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) { String line; while ((line = br.readLine()) != null) { // 处理行 } } catch (IOException e) { e.printStackTrace(); }
用途:自动关闭资源,避免资源泄露。
15. 使用Optional避免空指针:
Optional<String> optional = Optional.ofNullable(str); optional.ifPresent(s -> System.out.println(s)); 或 String result = optional.orElse("default");
16. 使用Stream API(Java 8+)进行集合操作:
过滤:list.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList())
映射:list.stream().map(String::toUpperCase).collect(Collectors.toList())
排序:list.stream().sorted().collect(Collectors.toList())
去重:list.stream().distinct().collect(Collectors.toList())
聚合操作:list.stream().count(), list.stream().mapToInt(Integer::parseInt).sum()
17. 日期时间处理(Java 8+):
获取当前日期时间:LocalDateTime now = LocalDateTime.now();
格式化日期时间:DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formatted = now.format(formatter);
解析字符串为日期时间:LocalDateTime dt = LocalDateTime.parse("2025-08-06 12:30:00", formatter);
18. 多线程编程:
创建线程:new Thread(() -> { ... }).start();
使用线程池:ExecutorService executor = Executors.newFixedThreadPool(10); executor.submit(() -> { ... });
1. 数组工具类 Arrays
Arrays.toString(array)
→ 快速打印数组内容(避免输出地址值)java
int[] arr = {1, 2, 3}; System.out.println(Arrays.toString(arr)); // 输出: [1, 2, 3]
Arrays.sort(array)
→ 数组排序(升序)java
int[] nums = {3, 1, 2}; Arrays.sort(nums); // nums变为 [1, 2, 3]
Arrays.asList(T...)
→ 将数组转为固定长度的列表(不可增删)java
List<String> list = Arrays.asList("A", "B", "C");
2. 字符串分割与处理 String.split()
str.split(regex)
→ 按正则分割字符串为数组java
String input = "a b c"; String[] parts = input.split(" "); // 得到 ["a", "b", "c"]
→ 结合列表转换:
java
List<String> list = Arrays.asList(input.split(" "));
3. 集合工具类 Collections
Collections.sort(list)
→ 对列表升序排序java
List<Integer> nums = new ArrayList<>(List.of(3, 1, 2)); Collections.sort(nums); // 变为 [1, 2, 3]
Collections.reverse(list)
→ 反转列表顺序java
Collections.reverse(nums); // 变为 [3, 2, 1]
4. 集合与数组互转
集合 → 数组
java
List<String> list = List.of("A", "B"); String[] array = list.toArray(new String[0]); // 需指定类型
数组 → 集合(可变)
java
String[] arr = {"X", "Y"}; List<String> mutableList = new ArrayList<>(Arrays.asList(arr)); // 可增删
5. I/O 操作
控制台输出
java
System.out.println("Message"); // 打印并换行 System.out.print("No newline"); // 不换行
控制台输入
java
Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); // 读取一行 int num = scanner.nextInt(); // 读取整数
6. 字符串常用方法
str.trim()
→ 移除首尾空格java
String s = " text ".trim(); // "text"
str.substring(start, end)
→ 截取子串java
"hello".substring(1, 3); // "el"
str.equals(str2)
→ 比较字符串内容(非地址)java
boolean equal = "abc".equals("abc"); // true
7. 集合遍历
增强 for 循环
java
for (String item : list) {System.out.println(item); }
迭代器
Iterator
java
Iterator<String> it = list.iterator(); while (it.hasNext()) {String element = it.next(); }
8. 其他高频操作
列表初始化(Java 9+)
java
List<String> list = List.of("A", "B"); // 不可变列表
检查空集合/空字符串
java
if (list.isEmpty()) { ... } if (str.isEmpty() || str.isBlank()) { ... } // Java 11+
使用场景总结
场景 | 推荐方法 |
---|---|
打印数组 | Arrays.toString() |
字符串分割为列表 | Arrays.asList(str.split(regex)) |
数组/集合排序 | Arrays.sort() / Collections.sort() |
控制台输入输出 | System.out.println() + Scanner |
字符串处理 | split() , trim() , substring() |
集合与数组互转 | list.toArray() + Arrays.asList() |