Lambda表达式 (Lambda expressions)
public static void main(String[] args) {
List<String> numbers = Arrays.asList("one", "two", "three", "four", "five");
// 使用匿名内部类实现
Collections.sort(numbers, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
// 使用Lambda实现
Collections.sort(numbers,(String o1,String o2)->{
return o2.compareTo(o1);
});
// 进行简化
Collections.sort(numbers,(o1,o2)->o2.compareTo(o1));
// 使用内置函数进行替换
Collections.sort(numbers, Comparator.reverseOrder());
}
Stream API
生成流
把集合数据变成流数据的过程
public void test01(){
//第一种方法
//Arrays.stream();
//第二种方法,直接对List集合进行操作
//第三种方法,直接使用stream.of()
List<String> collect = Stream.of("one", "tow", "three")
.filter(s -> s.startsWith("o"))
.collect(Collectors.toList());
System.out.println(collect);
// 通过 迭代器 生成流
var list = Stream.iterate(0,n->n+1)
.limit(10)
.peek(n -> log.debug("the number is :{}",n))
.collect(Collectors.toList());
// 通过 generate 生成
var list2 = Stream.generate(()-> Math.random())
.limit(10).collect(Collectors.toList());
}