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]] }}
总结
操作 | 方法 | 特点 |
---|---|---|
数组转 List | Arrays.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+,支持基本类型 | |
基本类型数组转 List | Arrays.stream(array).boxed().collect(Collectors.toList()) | Java 8+ |
List 转基本类型数组 | list.stream().mapToInt(Integer::intValue).toArray() | Java 8+ |
根据需求选择合适的方法,可以高效完成 List
和数组之间的转换。