Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用for循环将元素从一个列表转移到另一个列表_Java_List_For Loop - Fatal编程技术网

在Java中使用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

尝试使用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 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());