String[]与list<String>的转换
时间: 2023-11-18 07:11:37 浏览: 64
C#中List〈string〉和string[]数组之间的相互转换
在Java中,String[]和List<String>是两种常用的数据类型。有时我们需要将它们进行互相转换,以下是两种转换方式:
1. String[] 转 List<String>
```java
String[] strArray = {"apple", "banana", "cherry"};
List<String> strList = Arrays.asList(strArray);
```
这里使用了Arrays类的asList方法,该方法可以将一个数组转换为一个List。需要注意的是,该方法返回的List是一个不可变的List,即不能对其进行增删改操作。
如果需要对List进行增删改操作,可以使用以下代码:
```java
String[] strArray = {"apple", "banana", "cherry"};
List<String> strList = new ArrayList<>(Arrays.asList(strArray));
```
这里创建了一个新的ArrayList,并将asList方法返回的List作为构造函数的参数。
2. List<String> 转 String[]
```java
List<String> strList = new ArrayList<>();
strList.add("apple");
strList.add("banana");
strList.add("cherry");
String[] strArray = strList.toArray(new String[0]);
```
这里使用了List的toArray方法,该方法可以将一个List转换为一个数组。需要注意的是,需要传入一个指定类型和长度的数组作为参数,如果数组长度不足时,该方法会自动创建一个新的数组。这里我们传入了一个长度为0的String数组,该方法会在转换时创建一个新的String数组。
如果需要将List转换为其他类型的数组,只需要将参数中的类型改为相应的类型即可。例如,如果需要将List<Integer>转换为int[],可以使用以下代码:
```java
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);
int[] intArray = intList.stream().mapToInt(Integer::intValue).toArray();
```
这里使用了Java 8中的Stream API,将Integer类型的List转换为int类型的数组。如果不使用Java 8,也可以通过循环遍历List,并逐个将元素转换为int类型,然后放入一个新的int数组中。
阅读全文