zoukankan      html  css  js  c++  java
  • JAVA 8 STREAM

    package japan.example.test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;
    
    import lombok.Data;
    
    public class StreamTests {
    
        public static void main(String[] args) {
    
            StreamTests test = new StreamTests();
    
            test.test(test.data());
        }
    
        public List<ResponseData> data() {
            ResponseData data = new ResponseData();
    
            data.serialno = "0011";
            data.setStatus("succ");
    
            List<ResponseData> list = new ArrayList<>();
            list.add(data);
    
            data = new ResponseData();
            data.setSerialno("0011");
            data.setStatus("fail");
    
            list.add(data);
    
            data = new ResponseData();
            data.setSerialno("0012");
            data.setStatus("wait");
    
            list.add(data);
            return list;
        }
    
        public void test(List<ResponseData> dataarray) {
            Map<String, List<String>> counting = dataarray.stream().
                    collect(Collectors.groupingBy(ResponseData::getSerialno,
                    Collectors.mapping(ResponseData::getStatus, Collectors.toList())));
    
            Map<String, List<ResponseData>> conuntink = dataarray.stream()
                    .collect(Collectors.groupingBy(ResponseData::getSerialno, Collectors.toList()));
    
            counting.entrySet().forEach(x -> {
                String key = x.getKey();
                List<String> val = x.getValue();
    
                System.err.println(key + val);
            });
        }
    }
    
    @Data
    class ResponseData {
        String serialno;
        String status;
    }
    @Data
    class Item {
        Long id;
        int count;
        BigDecimal price;
    
        public Item(Long id, int count, BigDecimal price) {
            this.id = id;
            this.count = count;
            this.price = price;
        }
    
        public static void main(String[] args) {
            List<Item> items = Arrays.asList(//
                    new Item(1000L, 2, new BigDecimal("10.00")), //
                    new Item(1001L, 2, new BigDecimal("11.00")), //
                    new Item(1001L, 3, new BigDecimal("11.00")), //
                    new Item(1002L, 2, new BigDecimal("12.00")), //
                    new Item(1002L, 2, new BigDecimal("12.00")), //
                    new Item(1002L, 2, new BigDecimal("12.00")));
    
            Map<Long, List<BigDecimal>> datas = items.stream().collect(Collectors.groupingBy(Item::getId, Collectors.mapping(Item::getPrice, Collectors.toList())));
            System.err.println(datas);
    
            Map<Long, BigDecimal> prices = items.stream().collect(Collectors.groupingBy(Item::getId, Collectors.mapping(Item::getPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
            System.err.println(prices);
        }
    
    }
  • 相关阅读:
    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
    js 中怎么使 if(aᅠ==1 && a== 2 && ᅠa==3) 返回 true?
    最新Hadoop-2.7.2+hbase-1.2.0+zookeeper-3.4.8 HA高可用集群配置安装
    spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置(二)+Druid连接池
    activiti 学习由浅入深
    hadoop2.4.1+hbase0.98.3实现的分布式网盘系统初步(已开源)
    【Note】Linux
    记初学CMMI,跳出码农搬砖时代,人人都是经营者
    java8_接口中的默认方法与静态方法
    java8_Stream
  • 原文地址:https://www.cnblogs.com/jpit/p/8360808.html
Copyright © 2011-2022 走看看