JAVA 8 中新增 lambda 表示式的一些基本應用
阿新 • • 發佈:2019-04-27
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 包中,也