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 包中,也能够关注一下。java