Stream流式惰性计算

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


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值