美文网首页
lamda表达式与匿名内部类

lamda表达式与匿名内部类

作者: 屎倒淋头还嚼便 | 来源:发表于2023-11-18 20:47 被阅读0次

    new小括号花括号组成的是匿名内部类。

    变量(没有变量用小括号)剪头方法体组成的是lamda表达式。

    lamda可以认为是简化的匿名内部类

    
    ArrayList<String> list2 = new ArrayList<>();
    
    list2.add("张三丰");
    
    list2.add("张丰");
    
    list2.add("三丰");
    
    Stream<String> stream = list2.stream();
    
    // lamda表达式可以认为是简化的匿名内部类,变量箭头方法体
    
    List<String> collect = stream.filter(name->name.startsWith("张")).filter(name->name.length()==3).collect(Collectors.toList());
    
    collect.stream().forEach(name->System.out.println(name)); // 张三丰
    
    new Thread(()->{
    
    System.out.println(111);
    
    }).start();
    
    List<User> list = new ArrayList<>();
    
       User user1 = new User();
    
       user1.setUserId(1);
    
       user1.setName("James");
    
       user1.setAge(13);
    
       list.add(user1);
    
       User user2 = new User();
    
       user2.setUserId(2);
    
       user2.setName("Tom");
    
       user2.setAge(21);
    
       list.add(user2);
    
       // 两种书写方式都可以,一个是map里面,使用每一个实例调用User类的getName方法返回值就是转化后的值。
    
       List<String> tableNames = list.stream().map(User::getName).collect(Collectors.toList());
    
       tableNames.stream().forEach(s -> System.out.println(s));
    
       List<String> tableNames1 = list.stream().map(u -> u.getName()).collect(Collectors.toList());
    
       tableNames1.stream().forEach(s -> System.out.println(s));
    
    

    相关文章

      网友评论

          本文标题:lamda表达式与匿名内部类

          本文链接:https://www.haomeiwen.com/subject/pkjpwdtx.html