Java开发

Java中常用的字符串替换的4种方法

2025-02-01 28 0

简介 Java中常用的字符串替换的4种方法

在 Java 中,List 和数组之间的互相转换是非常常见的操作。以下是常用的方法及其示例代码:


1. 数组转 List

方法 1:使用 Arrays.asList()

  • 特点

    • 返回的 List 是一个固定大小的列表,不能添加或删除元素。

    • List 的修改会反映到原数组。

  • 示例

java

复制

import java.util.Arrays;import java.util.List;public class Main {
    public static void main(String[] args) {
        String[] array = {"Apple", "Banana", "Orange"};
        List<String> list = Arrays.asList(array); // 数组转 List
        System.out.println(list); // 输出: [Apple, Banana, Orange]
    }}

方法 2:使用 new ArrayList<>(Arrays.asList())

  • 特点

    • 返回一个可变的 ArrayList,可以添加或删除元素。

    • List 的修改不会影响原数组。

  • 示例

java

复制

import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {
    public static void main(String[] args) {
        String[] array = {"Apple", "Banana", "Orange"};
        List<String> list = new ArrayList<>(Arrays.asList(array)); // 数组转可变 List
        list.add("Grape"); // 可以添加元素
        System.out.println(list); // 输出: [Apple, Banana, Orange, Grape]
    }}

方法 3:使用 Java 8 的 Stream

  • 特点

    • 适用于 Java 8 及以上版本。

    • 可以处理基本类型数组。

  • 示例

java

复制

import java.util.List;import java.util.stream.Collectors;import java.util.Arrays;public class Main {
    public static void main(String[] args) {
        String[] array = {"Apple", "Banana", "Orange"};
        List<String> list = Arrays.stream(array).collect(Collectors.toList()); // 数组转 List
        System.out.println(list); // 输出: [Apple, Banana, Orange]
    }}

2. List 转数组

方法 1:使用 List.toArray()

  • 特点

    • 返回一个 Object[] 数组。

    • 需要手动指定数组类型。

  • 示例

java

复制

import java.util.ArrayList;import java.util.List;public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        String[] array = list.toArray(new String[0]); // List 转数组
        System.out.println(Arrays.toString(array)); // 输出: [Apple, Banana, Orange]
    }}

方法 2:使用 Java 8 的 Stream

  • 特点

    • 适用于 Java 8 及以上版本。

    • 可以处理基本类型列表。

  • 示例

java

复制

import java.util.List;import java.util.Arrays;public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Apple", "Banana", "Orange");
        String[] array = list.stream().toArray(String[]::new); // List 转数组
        System.out.println(Arrays.toString(array)); // 输出: [Apple, Banana, Orange]
    }}

3. 基本类型数组与 List 的转换

数组转 List(基本类型)

  • 问题Arrays.asList() 不支持基本类型数组(如 int[]),会将其视为单个元素。

  • 解决方法:使用 Java 8 的 Stream

java

复制

import java.util.List;import java.util.Arrays;import java.util.stream.Collectors;public class Main {
    public static void main(String[] args) {
        int[] array = {1, 2, 3};
        List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList()); // int[] 转 List<Integer>
        System.out.println(list); // 输出: [1, 2, 3]
    }}

List 转数组(基本类型)

  • 解决方法:使用 Stream 或手动转换。

java

复制

import java.util.List;import java.util.Arrays;public class Main {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3);
        int[] array = list.stream().mapToInt(Integer::intValue).toArray(); // List<Integer> 转 int[]
        System.out.println(Arrays.toString(array)); // 输出: [1, 2, 3]
    }}

4. 多维数组与 List 的转换

多维数组转 List

  • 示例

java

复制

import java.util.Arrays;import java.util.List;public class Main {
    public static void main(String[] args) {
        String[][] array = {{"Apple", "Banana"}, {"Orange", "Grape"}};
        List<List<String>> list = Arrays.stream(array)
                .map(Arrays::asList)
                .collect(Collectors.toList()); // 多维数组转 List<List<String>>
        System.out.println(list); // 输出: [[Apple, Banana], [Orange, Grape]]
    }}

List 转多维数组

  • 示例

java

复制

import java.util.List;import java.util.Arrays;public class Main {
    public static void main(String[] args) {
        List<List<String>> list = Arrays.asList(
                Arrays.asList("Apple", "Banana"),
                Arrays.asList("Orange", "Grape")
        );
        String[][] array = list.stream()
                .map(l -> l.toArray(new String[0]))
                .toArray(String[][]::new); // List<List<String>> 转多维数组
        System.out.println(Arrays.deepToString(array)); // 输出: [[Apple, Banana], [Orange, Grape]]
    }}

总结

操作方法特点
数组转 ListArrays.asList()固定大小,修改会影响原数组

new ArrayList<>(Arrays.asList())可变大小,修改不影响原数组

Arrays.stream(array).collect(Collectors.toList())Java 8+,支持基本类型
List 转数组list.toArray(new T[0])需要指定数组类型

list.stream().toArray(T[]::new)Java 8+,支持基本类型
基本类型数组转 ListArrays.stream(array).boxed().collect(Collectors.toList())Java 8+
List 转基本类型数组list.stream().mapToInt(Integer::intValue).toArray()Java 8+

根据需求选择合适的方法,可以高效完成 List 和数组之间的转换。


点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信