jdk8基本类型优化

172 阅读1分钟
// 创建一个空的 IntStream
IntStream empty = IntStream.empty();
// 创建包含基本类型1, 2, 3的 IntStream
IntStream intStream = IntStream.of(1, 2, 3);
// 创建一个包含1到9的 IntStream
IntStream range = IntStream.range(1, 10);
// 创建一个包含1到10的 IntStream
IntStream rangeClosed = IntStream.rangeClosed(1, 10);
// 创建一个包含3的 IntStream
IntStream generated = IntStream.generate(() -> 3);
// 得到一个无限循环的 IntStream, 值为 1, 3, 5, 7 ...
IntStream infinite = IntStream.iterate(1, operand -> operand + 2);

1.filter方法

// 输出 2, 4, 6
IntStream.of(1, 2, 3, 4, 5, 6, 7).filter(elem -> elem % 2 == 0).forEach(System.out::println);

2.map 方法

// 输出 10, 20, 30, 40, 50, 60, 70
IntStream.of(1, 2, 3, 4, 5, 6, 7).map(elem -> elem * 10).forEach(System.out::println);

3.mapToObj 方法

// 输出a1, a2, a3, a4, a5, a6, a7
IntStream.of(1, 2, 3, 4, 5, 6, 7).mapToObj(elem -> "a" + elem).forEach(System.out::println);

4.mapToLong 方法

// 输出 100, 200, 300, 400, 500, 600, 700
IntStream.of(1, 2, 3, 4, 5, 6, 7).mapToLong(elem -> elem * 100L).forEach(System.out::println);

5.mapToDouble 方法

// 输出 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1
IntStream.of(1, 2, 3, 4, 5, 6, 7).mapToDouble(elem -> elem + 0.1).forEach(System.out::println);

6.min 方法

// 输出 1
System.out.println(IntStream.of(1, 2, 3, 4).min().getAsInt());

7.summaryStatistics 方法

IntSummaryStatistics summary = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).summaryStatistics();
// 输出 1
System.out.println(summary.getMin());
// 输出 10
System.out.println(summary.getMax());
// 输出 55
System.out.println(summary.getSum());
// 输出 10
System.out.println(summary.getCount());
// 输出 5.5
System.out.println(summary.getAverage());