将字符串数组转换为java.util.List

mspsb9vt  于 2023-02-20  发布在  Java
关注(0)|答案(9)|浏览(159)

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

gt0wga4j

gt0wga4j1#

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)

evrscar2

evrscar22#

使用静态的List list = Arrays.asList(stringArray),或者您可以只遍历数组并将字符串添加到列表中。

xqk2d5yq

xqk2d5yq3#

import java.util.Collections;

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

Collections.addAll(myList, myArray);
fzsnzjdm

fzsnzjdm4#

最简单的方法:

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

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

9fkzdhlc5#

第一步,你需要通过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);
c9x0cxw0

c9x0cxw06#

Java 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());
wwtsj6pe

wwtsj6pe7#

如果结果应该是只读列表,则可以使用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));
}
cqoc49vn

cqoc49vn8#

在Java 14上,您可以执行此操作

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

7ajki6be9#

如果你有这样一个列表:“一、二、三。”
您可以使用以下代码:

Arrays.asList(StringUtil.split("one, two, three",','))

public static List<String> convertStringToList(String listAsString) {
    String[] list = listAsString.split("\\s*,\\s*");
    return Arrays.stream(list).collect(Collectors.toList());
}

相关问题