简单的lamda用法

/**
 * @author hsw
 * @Date 14:36 2018/7/11
 */
@Data
public class Boy {
    private String name;
    private int age;

    public Boy(String name, int age) {
        this.name = name;
        this.age = age;
    }
}



import lombok.extern.slf4j.Slf4j;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

/**
 * @author hsw
 * @Date 14:40 2018/7/11
 */
@Slf4j
public class Test {
    public static void main(String[] args) {
        Boy b1 = new Boy("a",13);
        Boy b2 = new Boy("a",14);
        Boy b3 = new Boy("b",15);
        Boy b4 = new Boy("c",16);
        Boy b5 = new Boy("a",17);
        Boy b6 = new Boy("d",18);


        //获取一个boys集合
        List<Boy> boys= Arrays.asList(b1,b2,b3,b4,b5,b6);

        //boys集合中所有姓名为a的数据组成集合
        List<Boy> result = boys.stream().filter(a -> "a".equals(a.getName())).collect(Collectors.toList());

        //循环输出boys集合中所有姓名为a的数据
//        boys.stream().filter(a -> "a".equals(a.getName())).forEach(System.out::println);

        //boys集合中的name集合
        List<String> result2 = boys.stream().map(Boy::getName).collect(Collectors.toList());

        //降序输出boys中的age
        boys.stream().map(Boy::getAge).sorted((a,b) -> b.compareTo(a)).forEach(System.out::println);

        //获取第一个姓名为a的数据
        Optional<Boy> firstA= boys.stream().filter(a -> "a".equals(a.getName())).findFirst();

        //name集合中是否有d开头的名字
        Boolean boolean1 = result2.stream().anyMatch((s) -> s.startsWith("d"));
        System.out.println(boolean1);

        //name集合中是否全部是d开头的名字
        Boolean boolean2 = result2.stream().allMatch((s) -> s.startsWith("d"));
        System.out.println(boolean2);

        //name集合中是否没有d开头的名字
        Boolean boolean3 = result2.stream().noneMatch((s) -> s.startsWith("d"));
        System.out.println(boolean3);

        //降序拼接name集合
        Optional<String> reduced = result2.stream().sorted((a,b) -> b.compareTo(a)).reduce((s1, s2) -> s1 + "#" + s2);
        reduced.ifPresent(log::info);

    }




}

猜你喜欢

转载自blog.csdn.net/qq_38439885/article/details/81001665