[Java][Stream]forEach/toArray/count/collect四种终止方法的讲解

2023-12-13 17:31:30

我们分两个部分来讲解这些知识:

第一部分是forEach/toArray/count这些比较简单的终止方法,方法的含义读英文即可了解,我这里不做过多赘述

第二部分是分析collect储存元素到不同的集合类型中的解决途径

import java.util.ArrayList;
import java.util.Collections;

public class Main{
    public static void main(String[] args){
        /*
        终结方法:forEach
        count()统计
        toArray()转换为数组
         */

        //创建集合并且添加值
        ArrayList<Integer> al = new ArrayList<>();
        Collections.addAll(al,1,2,3,4,5,6,7,7,8,9,10,11,12,13,14);

        //输出count统计的结果
        System.out.println(al.stream().filter(s->s>=10).count());
        //输出forEach遍历的结果
        al.stream().filter(s->s>=10).forEach(s->System.out.println(s));

        //输出toArray方法的结果并且遍历它
        Object[] arr =al.stream().filter(s->s>=10).toArray();
        for(int i=0;i<=arr.length;i++){
            System.out.println(arr[i]);
        }

    }
}
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main{
    public static void main(String[] args){

        //1.使用Collect来将Stream流中的对象转化为List
        List<String> list = Stream.of("apple","banana","pear").collect(Collectors.toList());
        for(String s:list){
            System.out.println(s);
        }

        //2.使用Collect来将Stream流中儿的对象转化为Set
        Set<String> set = Stream.of("lihua","lilei","hanmeimei").collect(Collectors.toSet());
        for(String s:set){
            System.out.println(s);
        }

        /*
        分组:这是一个较难的知识点 我们将一个Stream中的元素按照某个属性进行分组,并且生成一个Map

         */
        Student s1 = new Student("lihua",18);
        Student s2 = new Student("lilei",19);
        Student s3 = new Student("hanmeimei",18);
        List<Student> lt= new ArrayList<>();
        lt.add(s1);
        lt.add(s2);
        lt.add(s3);
        Map<Integer,List<Student>> result = lt.stream().collect(Collectors.groupingBy(s->s.getAge()));

        System.out.println(result);
    }
}

文章来源:https://blog.csdn.net/qq_37511412/article/details/134969382
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。