当前位置: 首页 > 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.lryc.cn/news/612470.html

相关文章:

  • 实习文档背诵
  • chdir系统调用及示例
  • docker启动出现Error response from daemon: Container的问题【已解决】
  • 92、【OS】【Nuttx】【构建】cmake 支持构建的目标
  • InfluxDB 集群部署与高可用方案(二)
  • 【概念学习】深度学习有何不同
  • 敏捷协作平台推荐:Jira、PingCode、Tapd等15款
  • iptables相关知识笔记
  • AI+物理融合新范式:物理信息神经网络(PINN)的深度研究报告
  • Flash Attention与SDPA
  • 深度探索:非静态内部类不能定义 static 成员属性和方法 及 静态内部类的必要性
  • AI Infra与LLM的联系与差异
  • ICCV 2025 | 视频生成迈入“多段一致”新时代!TokensGen用“压缩Token”玩转长视频生成
  • 【java】DDD架构同普通微服务项目的区别
  • 低代码系统的技术深度:超越“可视化操作”的架构与实现挑战
  • MCU编程中的临界资源及临界区
  • 【51单片机2个独立按键2个独立数码管静态显示内容自定】2022-10-22
  • 从 0 到 1 创建 InfluxDB 3 表:标签、字段、命名规范一篇讲透
  • 无人机航拍数据集|第4期 无人机太阳光伏板红外目标检测YOLO数据集10945张yolov11/yolov8/yolov5可训练
  • 无人机图传的得力助手:5G 便携式多卡高清视频融合终端的协同应用
  • ⭐CVPR 文本到 3D 场景生成新突破:Prometheus 框架解析
  • 小实验--继电器定时开闭
  • Pytest项目_day04(Python做接口请求)
  • vector使用模拟实现
  • Linux 学习 之 killer 问题
  • Unity笔记(三)——父子关系、坐标转换、Input、屏幕
  • STM32学习笔记3-GPIO输入部分
  • 【模电笔记】—— 直流稳压电源——稳压电路
  • RK3568笔记九十六:多路实时目标检测
  • Python应用指南:获取风闻评论数据并解读其背后的情感倾向(二)