public static void main(String[] args) {
String[] array = new String[] { "Like", "image", "aj", "Lambda" };
//Lambda方法的几种不同的应用
//直接传入方法引用
Arrays.sort(array, new Comparator<>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
//test2
Arrays.sort(array, Main::cmp);
System.out.println(String.join(", ", array));
//test3
Arrays.sort(array,String::compareTo);
System.out.println(String.join(", ", array));
}
static int cmp(String s1,String s2)
{
return s1.compareTo(s2);
}
Stream的一些用法
Stream<Integer> natual = Stream.generate(new NatualSupplier());
// 注意:无限序列必须先变成有限序列再打印:
//他会要一直到最后一步执行的时候才进行计算,否则就保持不变
natual.limit(20).forEach(System.out::println);
//无限的自然数序列
class NatualSupplier implements Supplier<Integer> {
int n = 0;
public Integer get() {
n++;
return n;
}
}
//利用Stream写一个斐波那契数列
public class Main {
public static void main(String[] args) throws IOException {
LongStream fib = LongStream.generate(new FibSupplier());
fib.limit(10).forEach(System.out::println);
}
}
class FibSupplier implements LongSupplier {
long a=0;
public long getAsLong() {
a++;
return fib(a);
}
public long fib(long a)
{
if(a==1 || a==2)
{
return 1;
}else {
return fib(a-1)+fib(a-2);
}
}
}