1.生成斐波那契数列(Stream基本使用)
要求是编写一个能输出斐波拉契数列(Fibonacci)的LongStream
:
因为Java的范型不支持基本类型,所以我们无法用Stream<long>
这样的类型,会发生编译错误。为了保存long,只能使用Stream<Long>
,但这样会产生频繁的装箱、拆箱操作。
为了提高效率,Java标准库提供了IntStream、LongStream和DoubleStream这三种使用基本类型的Stream,它们的使用方法和范型Stream没有大的区别
public class Main {
public static void main(String[] args) throws IOException {
LongStream fib = LongStream.generate(new FibSupplier());
// 打印Fibonacci数列:1,1,2,3,5,8,13,21...
fib.limit(10).forEach(System.out::println);
}
}
class FibSupplier implements LongSupplier {
long first = 0;
long second = 1;
public long getAsLong() {
long p = second;
second += first;
first = p;
return first;
}
}
2. String 转换为LocalDate (map使用)
正常转换:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
* String 类型转为 LocalDate类型
*
*/
public class DemoDate {
public static void main(String[] args) {
String date1 = "2021-06-13";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date2 = LocalDate.parse(date1, fmt);
System.out.println(date1);
System.out.println(date2);
}
}
case1:不指明format