栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Java 8 Lambda 表达式的一点使用分享

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Java 8 Lambda 表达式的一点使用分享

以下是java8 流式处理的一些常用方法,可以在以后做查看用

package com.fisher.drools.springbootdrools.lamda;

import com.graphbuilder.struc.linkedList;

import java.util.DoubleSummaryStatistics;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.IntStream;


public class CollectionUseDemo {

    public static void main(String[] args) {
        List products = IntStream.range(1, 100).mapToObj(index -> {
            Product product = new Product();
            product.setAddress("address : " + index);
            product.setName("productName:=" + index);
            product.setPrice(new Random().nextDouble());
            return product;
        }).collect(Collectors.toList());


        //将集合中的元素的某个字段拿出来做一个新的集合
        List collect = products.stream().map(Product::getName).collect(Collectors.toList());
        System.out.println(collect);

        //目标集合中提取转化需要的部分转化成一个新的集合,并使用分隔符,前缀 ,后缀拼成一个整个的字符串
        String target = products.stream().map(Product::getName).collect(Collectors.joining("@@", "[", "]"));
        System.out.println(target);

        //集合元素中所有的求平均值
        Double averagePrice = products.stream().collect(Collectors.averagingDouble(Product::getPrice));
        System.out.println(averagePrice);

        //集合元素中求和
        Double collect1 = products.stream().mapToDouble(Product::getPrice).sum();
        System.out.println(collect1);

        //收集统计信息非常重要的
        DoubleSummaryStatistics summaryStatistics = products.stream().collect(Collectors.summarizingDouble(Product::getPrice));
        System.out.println(summaryStatistics);

        //通过一个给定的信息分区
        Map> partitions = products.stream().collect(Collectors.partitioningBy(product -> product.getPrice() > 0.02));
        System.out.println(partitions);


        //自定义collector 收集器,转化不同的结果
        Collector listCollector = Collector.of(linkedList::new, linkedList::addToTail, (first, second) -> {
            first.addToTail(second);
            return first;
        });

        linkedList collect2 = products.stream().collect(listCollector);
        System.out.println(collect2);

    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号