lambda表达式获取指定的List

文章介绍了在JDK8中如何利用新特性,特别是Lambda表达式,来更优雅地从List数据结构中查找特定条件的值,例如根据name字段查找name为张的Map对象。对比了传统的for循环遍历方式和使用Lambda表达式的方法,强调了Lambda表达式的简洁性和高效性。
摘要由CSDN通过智能技术生成

jdk8新特新,优雅的从list中取值!

面试官问:jdk8有哪些新特性?
我:别问,问就是不知道!

别在用for循环遍历list啦,太low了。
最快的方式从list中找到name=张的map

简单demo:

//找到name=张的人
 List<Map> list = new ArrayList<>();
        Map map1 = new HashMap<>();
        map1.put("name","张");
        map1.put("age","17");
        list.add(map1);

        Map map2 = new HashMap<>();
        map2.put("name","吴");
        map2.put("age","18");
        list.add(map2);

        Map map3 = new HashMap<>();
        map3.put("name","李");
        map3.put("age","19");
        list.add(map3);
        System.out.println("list:"+list);
        //输出:list:[{name=张, age=17}, {name=吴, age=18}, {name=李, age=19}]
           //方法1,使用for循环遍历获取
        System.out.println(fun1(list));//输出:{name=张, age=17}
        //方法2: 使用lambda表达式获取
        System.out.println(fun2(list));//输出:{name=张, age=17}

方法1:使用for循坏遍历

//方法1,使用for循坏遍历
    public static Map fun1(List<Map> list) {
        Map resultMap = new HashMap<>();
        for (int i = 0; i < list.size(); i++) {
            if ("张".equals(list.get(i).get("name"))) {
                resultMap =list.get(i);
            }
        }
        return resultMap;
    }

方法2:使用jdk8新特性,lambda表达式

 //方法2:使用jdk8新特性,lambda表达式
    public static Map fun2(List<Map> list) {
        List<Map> zhang_list = list.stream().filter(u -> "张".equals(u.get("name"))).collect(Collectors.toList());
        return zhang_list.get(0);
    }

lambda表达式就1行代码,搞定。

收工~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值