将 String 数组转换为 java.util.List

如何将 String数组转换为 java.util.List

237388 次浏览

使用静态 List list = Arrays.asList(stringArray),或者只需迭代数组并将字符串添加到列表中。

List<String> strings = Arrays.asList(new String[]{"one", "two", "three"});

这是数组的 列表视图,列表部分不可修改,不能添加或删除元素。但是时间复杂度是 O (1)。

如果你想要一个可修改的列表:

List<String> strings =
new ArrayList<String>(Arrays.asList(new String[]{"one", "two", "three"}));

这将把源数组中的所有元素复制到一个新列表中(复杂度: O (n))

import java.util.Collections;


List myList = new ArrayList();
String[] myArray = new String[] {"Java", "Util", "List"};


Collections.addAll(myList, myArray);

第一步,您需要通过 Arrays.asList ()创建一个列表实例;

String[] args = new String[]{"one","two","three"};
List<String> list = Arrays.asList(args);//it converts to immutable list

然后需要将“ list”实例传递给 new ArrayList();

List<String> newList=new ArrayList<>(list);

最简单的方法:

String[] stringArray = {"Hey", "Hi", "Hello"};


List<String> list = Arrays.asList(stringArray);

在 Java14上你可以这样做

List<String> strings = Arrays.asList("one", "two", "three");

爪哇8和 Stream API 开始,你可以使用 Arrays.streamCollectors.toList:

String[] array = new String[]{"a", "b", "c"};
List<String> list = Arrays.stream(array).collect(Collectors.toList());

这是实用的,特别是如果您打算对列表执行进一步的操作。

String[] array = new String[]{"a", "bb", "ccc"};
List<String> list = Arrays.stream(array)
.filter(str -> str.length() > 1)
.map(str -> str + "!")
.collect(Collectors.toList());

如果结果应该是只读列表,那么可以使用 List.of (nameOfArray)

@Test
public void shouldMapArrayToList(){
// given
var testArray = new String[]{"1", "2", "3" };


// when
List<String> result = List.of(testArray);


// then
assertEquals("1", result.get(0));
assertEquals("2", result.get(1));
assertEquals("3", result.get(2));
}