import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

public class TestLambda {

    public static void main(String[] args) {
        new Thread(()-> System.out.println("Hello World !")).start();


        // lambda 表达式 的基本使用方式
        Function<String[],String> func = list -> {
            for (String str : list) {
                System.out.println(str);
            }
            return "";
        };

        // 非静态方法 使用对象类引用
        TestLambda test = new TestLambda();
        Function<String[],String> func2 = test::applys;

        // 静态方法直接使用 类名来引用
        Function<String[],String> func1 = TestLambda::apply;

        // 上面三种方式的 测试
        String[] strs = {"a","b","c"};
        func.apply(strs);
        func1.apply(strs);
        func2.apply(strs);

        // 使用 map 函数修改集合中的内容
        List<Integer> list = Arrays.asList(1000,1200,1300,1400,1500);
        list.stream().map( (value) -> "交税后金额为 : " + (value - 0.05*value)).forEach(System.out::println);

        //  使用 map 函数修改集合中的内容,然后使用 reduce 做处理
        // reduce 函数简介:最开始将第一个值 赋值给第一个参数,第二次将 返回值赋值给第一个参数,第三个值赋值给 第二个参数。
        Double dou = list.stream().map(value -> value*0.05).reduce((sum,value) -> {
            System.out.println(sum);
            System.out.println(value);
            return value + sum;
        }).get();
        System.out.println(dou);

        // 使用filter 筛选集合中的内容生成新的集合
        List<Integer> listInt = Arrays.asList(1002,1500,1431,2540,9851,1024,1204);
        List<Integer> filter = listInt.stream().filter( x -> x >1499 ).collect(Collectors.toList());
        System.out.println(filter);

        // 使用map 修改集合,然后将集合 按 “,”进行拼接
        List<String> nums = Arrays.asList("1","2","3","4","5","6","7");
        String numsChange = nums.stream().map(x -> x+5 ).collect(Collectors.joining(", "));
        System.out.println(numsChange);

    }

    static String apply(String[] strs){
        for (String str : strs) {
            System.out.println(str);
        }
        return "";
    }

    String applys(String[] strs){
        for (String str : strs) {
            System.out.println(str);
        }
        return "";
    }
}

Java 还给我们提供了一些 帮助接口在 rt.jar 中的 java.util.function 包中,也可以关注一下。

04-27 00:57