当前位置: 首页 > news >正文

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()
http://www.dtcms.com/a/317582.html

相关文章:

  • 排序算法归并排序
  • HarmonyOS应用开发环境搭建以及快速入门介绍
  • OpenAI隆重推出开源大模型:GPT-OSS
  • 面试题:基础的sql命令
  • Java NIO
  • 从 LinkedIn 到 Apache:Kafka 的架构设计与应用场景
  • 【25-cv-08899/08985】Lisa Audit 23张版权画作暴雷,Keith律所双案并发冻结跨境店铺!
  • Numpy科学计算与数据分析:Numpy入门之多平台安装与基础环境配置
  • Python 自动化与 Web 应用开发详细教案
  • 前端全栈修炼手册:从 Vue3 到工程化的进阶之路
  • Ethereum: 深入Hardhat Console, 我们的智能合约瑞士军刀
  • 微型导轨:智能家居抽屉的智能化应用
  • Text2SQL 智能问答系统开发-spider验证集(三)
  • 线程互斥与同步
  • C语言控制语句练习题1
  • 汽车以太网通信协议——SOME/IP
  • JTAG-SVF文件完整教程
  • 身份证实名认证接口增强联网平台的便利性与安全性
  • Centos上安装Mysql5.7教程
  • 智能提示词引擎的革新与应用:PromptPilot使用全解析
  • Bug 记录:SecureRandom.getInstanceStrong()导致验证码获取阻塞
  • 算法238. 除自身以外数组的乘积
  • 完整的登陆学生管理系统(配置数据库)
  • VSCode git提交记录中文commit显示乱码
  • 碰撞问题的分析
  • OpenAI开源大模型gpt-oss系列深度解析:从120B生产级到20B桌面级应用指南
  • C++实现线程池(3)缓存线程池
  • get请求中文字符参数乱码问题
  • 互联网一线大厂Java面试八股文整理(1000题附答案)
  • MATLAB深度学习之数据集-数据库构建方法详解