zoukankan      html  css  js  c++  java
  • java8快速实现分组、过滤、list转map

    public class TestEntity {
        private String c1;
        private String c2;
    
        public TestEntity(){}
        public TestEntity(String a,String b){
            this.c1=a;
            this.c2=b;
        }
    
        public String getC1() {
            return c1;
        }
    
        public void setC1(String c1) {
            this.c1 = c1;
        }
    
        public String getC2() {
            return c2;
        }
    
        public void setC2(String c2) {
            this.c2 = c2;
        }
    
        public String toString(){
            return "TestEntity{c1="+c1+","+"c2="+c2+"}";
        }
    
    }
    public class java8Test {
        public static void main(String[] args){
            TestEntity t1=new TestEntity("a","1");
            TestEntity t2=new TestEntity("a","2");
            TestEntity t3=new TestEntity("b","3");
    
            List<TestEntity> list=new ArrayList<>();
            list.add(t1);
            list.add(t2);
            list.add(t3);
    
            //1、分组
            Map<String,List<TestEntity>> map=list.stream().collect(Collectors.groupingBy(TestEntity::getC1));//按照c1分组
            System.out.println(map);
            //{a=[TestEntity{c1=a,c2=1}, TestEntity{c1=a,c2=2}], b=[TestEntity{c1=b,c2=3}]}
    
            //2、List转Map
            //如果有重复的key,则保留k1,舍弃k2。可以用(k1,k2)->k1来设置
            Map<String,TestEntity> map1=list.stream().collect(Collectors.toMap(TestEntity::getC1,a->a,(k1,k2)->k1));
            System.out.println(map1);
            //{a=TestEntity{c1=a,c2=1}, b=TestEntity{c1=b,c2=3}}
    
            //3、过滤Filter
            List<TestEntity> list1=list.stream().filter(a->a.getC1().equals("a")).collect(Collectors.toList());
            System.out.println(list1);
            //[TestEntity{c1=a,c2=1}, TestEntity{c1=a,c2=2}]
    
            //4、求和
            //5、求最大值和最小值
    
    
        }
    }
  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/xueblvip/p/12179246.html
Copyright © 2011-2022 走看看