在Java中使用for循环将元素从一个列表转移到另一个列表
尝试使用for循环将一个字符串列表的元素传输到临时列表在Java中使用for循环将元素从一个列表转移到另一个列表,java,list,for-loop,Java,List,For Loop,尝试使用for循环将一个字符串列表的元素传输到临时列表 List<String> origin = Arrays.asList("foo", "bar", "var"); List<String> temp = Arrays.asList(); String a = null; for(int i = 0; i < origin.size(); i++) { //Want to format
List<String> origin = Arrays.asList("foo", "bar", "var");
List<String> temp = Arrays.asList();
String a = null;
for(int i = 0; i < origin.size(); i++) {
//Want to format before adding to temp list
a = doSomeFormatting(origin.get(i));
temp.add(a);
}
如果在某些情况下,我想对列表中的字符串运行一些格式设置并将其传输到临时列表,这是否可能做到?Arrays.asList返回一个不可变列表。您应该改用一些可变列表实现,例如ArrayList:
Arrays.asList返回一个不可变列表,因此在添加时不支持操作异常。javadoc,它是这样说的:
返回指定数组支持的固定大小列表。更改为
返回的列表将写入数组。此方法的作用是
在基于阵列和基于集合的API之间架起桥梁
用Collection.toArray。返回的列表是可序列化的,并且
实现随机访问
对于您的情况,您实际上可以使用以下行不进行任何循环,即使用构造函数:
List<String> temp = new ArrayList(origin);
更新
如果要格式化,则可以迭代并应用格式,例如:
List<String> temp = new ArrayList<>();
for(String element : origin) {
String formattedElement = format(element);
temp.add(formattedElement);
}
以下是Java 8方式:
List<String> temp = origin.stream()
.map(e -> format(e))
.collect(Collectors.toList());
我建议您查看Oracle官方教程中的,以了解有关如何正确使用列表以及Java标准库提供的其他数据结构的更多信息,但问题是,在将原始列表中的每个元素传输到临时列表之前,我希望能够对其进行格式化。@请注意,您仍然需要使用新的ArraysList而不是Array.asList创建临时列表。
List<String> temp = new ArrayList<>();
for(String element : origin) {
String formattedElement = format(element);
temp.add(formattedElement);
}
List<String> temp = origin.stream()
.map(e -> format(e))
.collect(Collectors.toList());