📜  如何在Java 8中从Stream获取ArrayList

📅  最后修改于: 2020-03-29 03:43:26             🧑  作者: Mango

给定一个Stream,任务是将该流转换为Java 8中的ArrayList。
例子:

输入:流:[1、2、3、4、5] 输出:ArrayList:[1、2、3、4、5]

输入:流:[‘G’,’e’,’e’,’k’,’s’] 输出:ArrayList:[‘G’,’e’,’e’,’k’,’s’]

  1. 使用Collectors.toList()方法
    1. 获取要转换的流Stream。
    2. 使用collect()和Collectors.toList()方法将流收集为List。
    3. 将此列表转换为ArrayList.
    4. 返回/打印ArrayList.

    下面是上述方法的实现:
    程序: 

    // Java展示从Stream获取ArrayList
    import java.util.*;
    import java.util.stream.*;
    public class GFG {
        // 从Stream获取ArrayList
        public static  ArrayList
        getArrayListFromStream(Stream stream)
        {
            // 把Stream转成List
            List
                list = stream.collect(Collectors.toList());
            // 创建一个ArrayList,由List组恒
            ArrayList
                arrayList = new ArrayList(list);
            // 返回ArrayList
            return arrayList;
        }
        // Driver code
        public static void main(String args[])
        {
            Stream
                stream = Stream.of(1, 2, 3, 4, 5);
            // 把Stream转成ArrayList
            ArrayList
                arrayList = getArrayListFromStream(stream);
            // 打印arraylist
            System.out.println("ArrayList: " + arrayList);
        }
    }

    输出: 

    ArrayList:[1、2、3、4、5]

     

  2. 使用Collectors.toCollection()方法:
    方法:
    1. 获取要转换的流Stream。
    2. 使用collect()和Collectors.toCollection()方法将流Stream收集为ArrayList。
    3. 返回/打印ArrayList

    下面是上述方法的实现:
    程序:

    // Java使用Collectors.toList()从Stream获取ArrayList
    import java.util.*;
    import java.util.stream.*;
    public class GFG {
        // 从Stream获取ArrayList
        public static  ArrayList
        getArrayListFromStream(Stream stream)
        {
            // 把Stream转成ArrayList
            ArrayList
                arrayList = stream
                                .collect(Collectors
                                .toCollection(ArrayList::new));
            // 返回ArrayList
            return arrayList;
        }
        // 测试代码
        public static void main(String args[])
        {
            Stream
                stream = Stream.of(1, 2, 3, 4, 5);
            // 把Stream转成ArrayList
            ArrayList
                arrayList = getArrayListFromStream(stream);
            // 打印arraylist
            System.out.println("ArrayList: "
                               + arrayList);
        }
    }

    输出:

    ArrayList:[1、2、3、4、5]