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 包中,也可以关注一下。