Java 8 Lambda表达式及Stream API实现的九九乘法表

写法一:

import java.util.Arrays;
import java.util.List;

public class NineNine {

	public static void main(String[] args) {
		List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
		list.forEach((e) -> {
			list.stream().filter((ee) -> ee <= e)
					.forEach((eee) -> System.out.print(eee + "*" + e + "=" + eee * e + "; "));
			System.out.println();
		});
	}

}

写法二:

import java.util.Arrays;
import java.util.List;

public class NineNine {

	public static void main(String[] args) {
		Stream.iterate(1, e -> e + 1).limit(9).forEach(e -> {
			Stream.iterate(1, ee -> ee + 1).limit(e).forEach(ee -> {
				System.out.print(ee + "*" + e + "=" + ee * e + "; ");
			});
			System.out.println();
		});
	}

}

输出:

1*1=1; 
1*2=2; 2*2=4; 
1*3=3; 2*3=6; 3*3=9; 
1*4=4; 2*4=8; 3*4=12; 4*4=16; 
1*5=5; 2*5=10; 3*5=15; 4*5=20; 5*5=25; 
1*6=6; 2*6=12; 3*6=18; 4*6=24; 5*6=30; 6*6=36; 
1*7=7; 2*7=14; 3*7=21; 4*7=28; 5*7=35; 6*7=42; 7*7=49; 
1*8=8; 2*8=16; 3*8=24; 4*8=32; 5*8=40; 6*8=48; 7*8=56; 8*8=64; 
1*9=9; 2*9=18; 3*9=27; 4*9=36; 5*9=45; 6*9=54; 7*9=63; 8*9=72; 9*9=81; 

你可能感兴趣的:(数据结构与算法,Java8)