Jdk8 高阶函数的简单使用:map,reduce,filter,sorted

转载地址:https://blog.csdn.net/rongrong_love_lc/article/details/72845528

备份下:

package test;


import java.util.ArrayList;
import java.util.IntSummaryStatistics;
import java.util.stream.Collectors;

import org.junit.Test;

public class LambdaTest {

	static ArrayList<Integer> a = new ArrayList<Integer>();
	static ArrayList<Integer> b = null;
	static {
		a.add(4);
		a.add(3);
		a.add(2);
		a.add(1);
		a.add(6);
		a.add(7);
		a.add(8);
		a.add(5);
		a.add(9);
		a.add(0);
	}

	@Test
	public void testMap_forEach() {
		System.out.println("mmmmmmmmmmmmmmmmmmmmmmmmmmm");
		a.stream().map((x) -> (x + 100)).forEach((num) -> {
			System.out.print(num + ",");
		});
		a.forEach(System.out::print);
		System.out.println();
	}

	@Test
	public void testMap_collect() {
		System.out.println("mmmmmmmmmmmmmmmmmmmmmmmmmmm1111");
		b = (ArrayList<Integer>) a.stream().map((x) -> (x + 100)).collect(Collectors.toList());
		a.forEach(System.out::print);
		System.out.println();
		b.forEach(System.out::print);
	}

	@Test
	public void testReduce() {
		System.out.println("rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
		int b = a.stream().reduce((x, y) -> x + y).get();
		a.stream().forEach(System.out::print);
		System.out.println();
		System.out.println("sum = " + b);
	}

	@Test
	public void testFilter() {
		System.out.println("ffffffffffffffffffffffff");
		b = (ArrayList<Integer>) a.stream().filter((y) -> y % 2 != 0).collect(Collectors.toList());
		
		b.forEach((x) -> System.out.print(x + ","));
		System.out.println();
	}

	@Test
	public void testSort() {
		System.out.println("ssssssssssssssssssssssssssss");
		b = (ArrayList<Integer>) a.stream().sorted().collect(Collectors.toList());
		b.forEach((x) -> System.out.print(x + ","));
		System.out.println();
	}

	@Test
	public void testSort1() {
		System.out.println("ssssssssssssssssssssssssssss11111111");
		b = (ArrayList<Integer>) a.stream().sorted((x, y) -> {
			if (x > y) {
				return -1;
			} else if (x == y) {
				return 0;
			} else {
				return 1;
			}
		}).collect(Collectors.toList());
		b.forEach((x) -> System.out.print(x + ","));
		System.out.println();
	}

	@Test
	public void testSort2() {
		System.out.println("ssssssssssssssssssssssssssss2222222222222222");
		b = (ArrayList<Integer>) a.stream().sorted((x, y) -> (x.compareTo(y))).collect(Collectors.toList());
		b.forEach((x) -> System.out.print(x + ","));
		System.out.println();
	}

	@Test
	public void testSort3() {
		System.out.println("ssssssssssssssssssssssssssss3333333333333333333");
		b = (ArrayList<Integer>) a.stream().sorted((x, y) -> (-x.compareTo(y))).collect(Collectors.toList());
		b.forEach((x) -> System.out.print(x + ","));
		System.out.println();
	}

	@Test
	public void testSummaryStatistics() {
		System.out.println("================SummaryStatistics====================");
		IntSummaryStatistics statistics = a.stream().mapToInt((x) -> x).summaryStatistics();
		System.out.println("最大值:" + statistics.getMax());
		System.out.println("最小值:" + statistics.getMin());
		System.out.println("平均值:" + statistics.getAverage());
		System.out.println("总数:" + statistics.getCount());
		System.out.println("和:" + statistics.getSum());
	}

	@Test
	public void testParallelStream() {
		System.out.println("*******************ParallelStream**********************");
		// 以下使用有错误
		// IntStream intStream = a.parallelStream().mapToInt((x)->x);
		// System.out.println("最大值:"+intStream.max());
		// System.out.println("最小值:"+intStream.min());
		// System.out.println("平均值:"+intStream.average());
		// System.out.println("总数:"+intStream.count());
		// System.out.println("和:"+intStream.sum());
		System.out.println("最大值:" + a.parallelStream().mapToInt((x) -> x).max());
		System.out.println("最小值:" + a.parallelStream().mapToInt((x) -> x).min());
		System.out.println("平均值:" + a.parallelStream().mapToInt((x) -> x).average());
		System.out.println("总数:" + a.parallelStream().mapToInt((x) -> x).count());
		System.out.println("和:" + a.parallelStream().mapToInt((x) -> x).sum());
	}

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值