将字符串数组转换为 java.util.List
Posted
技术标签:
【中文标题】将字符串数组转换为 java.util.List【英文标题】:Converting String array to java.util.List 【发布时间】:2011-08-26 23:25:54 【问题描述】:如何将String
数组转换为java.util.List
?
【问题讨论】:
【参考方案1】:使用静态 List list = Arrays.asList(stringArray)
或者您可以遍历数组并将字符串添加到列表中。
【讨论】:
【参考方案2】: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))
【讨论】:
【参考方案3】:import java.util.Collections;
List myList = new ArrayList();
String[] myArray = new String[] "Java", "Util", "List";
Collections.addAll(myList, myArray);
【讨论】:
【参考方案4】:第一步需要通过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);
【讨论】:
【参考方案5】:最简单的方法:
String[] stringArray = "Hey", "Hi", "Hello";
List<String> list = Arrays.asList(stringArray);
【讨论】:
【参考方案6】:在 Java 14 上,您可以这样做
List<String> strings = Arrays.asList("one", "two", "three");
【讨论】:
【参考方案7】:从 Java 8 和 Stream API 开始,您可以使用 Arrays.stream
和 Collectors.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());
【讨论】:
以上是关于将字符串数组转换为 java.util.List的主要内容,如果未能解决你的问题,请参考以下文章
如何将 scala.List 转换为 java.util.List?
无法将类型“java.lang.String”的属性值转换为属性“事务”所需的类型“java.util.List”