jdk1.8创建stream的方法有哪些??

5 篇文章 0 订阅
4 篇文章 0 订阅

环境:jdk1.8

创建stream的方法常见的有:单线程(stream),多线程(parallelStream),Stream.of(),Stream.iterate()等等。

详情见代码:

public static void main(String[] args) {
		streamRange();
	}

	/**
	 * 用range/rangeclose 创建stream
	 * */
	private static void streamRange() {
		// 用range/rangeclose 创建stream
		IntStream stream1 = IntStream.range(0, 10);
		stream1.forEach(System.out::println);

		IntStream stream2 = IntStream.rangeClosed(0, 10);
		stream2.forEach(System.out::println);
	}

	/**
	 * 用生成器生成stream
	 */
	private static void streamGenerate() {
		// 用生成器生成stream
		Stream<Integer> liStream = Stream.generate(() -> new Random().nextInt(100));

		// 取前10个打印
		liStream.limit(10).forEach(System.out::println);
	}

	/**
	 * 迭代器创建stream
	 */
	private static void streamIterate() {
		// iterate 创建stream ,参数一:迭代器起始值,参数二:每次迭代的变化
		Stream<Integer> stream = Stream.iterate(0, x -> x + 2);

		// 取前10个打印
		stream.limit(10).forEach(e -> System.out.println(e));
	}

	/**
	 * of 方法创建stream
	 */
	private static void streamOf() {
		Stream<String> stream = Stream.of("abc", "def", "hij", "klm");
		stream.forEach(e -> System.out.println(e));
	}

	/**
	 * 使用数组创建stream
	 */
	private static void streamArrays() {
		String[] strs = { "juhuasuan", "xinniu", "jingshugou", "konglong" };

		Stream<String> list = Arrays.stream(strs);
		// 第一次使用stream
		list.forEach(e -> System.out.println(e));

		// 第二次使用stream
		list = Arrays.stream(strs);
		list.forEach(System.out::printf);
	}

	/**
	 * 多线程创建流
	 */
	private static void streamMultThreading() {
		List<String> list = new ArrayList<>();
		list.add("jindong");
		list.add("taobao");
		list.add("tianmao");
		list.add("pinduoduo");

		Stream<String> stream = list.parallelStream();

		// 第一次使用stream
		stream.forEach(e -> System.out.println(e));

		// 第二次使用stream
		stream = list.parallelStream();
		stream.forEach(System.out::printf);
	}

	/**
	 * 单线程创建流
	 */
	private static void streamSingleThread() {
		List<String> list = new ArrayList<String>();
		list.add("huawei");
		list.add("apple");
		list.add("oppo");
		list.add("vivo");
		Stream<String> streamList = list.stream();

		// 第一次使用stream
		streamList.forEach(s -> System.out.println(s));

		// 第二次使用stream
		streamList = list.stream();
		streamList.forEach(System.out::printf);
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕枫520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值