当前位置: 首页 > wzjs >正文

国外最火的网站广州建设工程造价管理站

国外最火的网站,广州建设工程造价管理站,模板网站报价明细,怎样做才能提升自己的网站文章目录 前言一、Stream概述1.1 什么是 Stream?1.2 Stream 和集合的区别 二、Stream的创建方式2.1 基于集合创建2.2 基于数组创建2.3 使用 Stream.generate()2.4 使用 Stream.iterate() 三、Stream常见操作3.1 中间操作(Intermediate)① fil…

文章目录

  • 前言
  • 一、Stream概述
    • 1.1 什么是 Stream?
    • 1.2 Stream 和集合的区别
  • 二、Stream的创建方式
    • 2.1 基于集合创建
    • 2.2 基于数组创建
    • 2.3 使用 `Stream.generate()`
    • 2.4 使用 `Stream.iterate()`
  • 三、Stream常见操作
    • 3.1 中间操作(Intermediate)
      • ① filter:过滤元素
      • ② map:映射操作
      • ③ flatMap:扁平化处理
      • ④ sorted:排序
    • 3.2 终端操作(Terminal)
      • ① collect:将流转换为集合
      • ② reduce:合并元素
  • 四、并行流处理
  • 五、使用 Stream 处理用户数据
  • 六、总结


前言

Java Stream 是 Java 8 引入的一项强大特性,主要用于处理集合数据。它提供了类似于函数式编程的方式,使代码更加简洁、易读,同时提高了效率。本文将详细介绍 Stream 的基本概念、常用操作、使用场景。


一、Stream概述

1.1 什么是 Stream?

Stream 是 Java 8 中引入的一个新接口,它专注于对集合对象进行处理,支持类似 SQL 的操作,例如:过滤、映射、排序、统计、收集等。Stream 提供了链式操作方式,使代码简洁且易读。

1.2 Stream 和集合的区别

特性Stream集合
数据存储方式不存储数据,仅处理数据流存储数据
是否可复用只能使用一次可重复使用
是否支持惰性求值惰性求值,仅在终端操作时才会执行不支持惰性求值
并行处理支持多核并行处理不支持直接并行处理

二、Stream的创建方式

2.1 基于集合创建

import java.util.stream.Stream;
import java.util.List;public class StreamDemo {public static void main(String[] args) {List<String> list = List.of("Java", "Python", "C++", "Go");// 将集合转换为 StreamStream<String> stream = list.stream();stream.forEach(System.out::println);}
}

2.2 基于数组创建

import java.util.stream.Stream;public class StreamFromArray {public static void main(String[] args) {String[] languages = {"Java", "Python", "C++"};Stream<String> stream = Stream.of(languages);stream.forEach(System.out::println);}
}

2.3 使用 Stream.generate()

import java.util.stream.Stream;public class StreamGenerate {public static void main(String[] args) {// 无限流,生成随机数,限制输出5个Stream<Double> randomStream = Stream.generate(Math::random).limit(5);randomStream.forEach(System.out::println);}
}

2.4 使用 Stream.iterate()

import java.util.stream.Stream;public class StreamIterate {public static void main(String[] args) {// 从1开始,每次加2,生成偶数流Stream<Integer> stream = Stream.iterate(1, n -> n + 2).limit(5);stream.forEach(System.out::println);}
}

三、Stream常见操作

3.1 中间操作(Intermediate)

中间操作返回新的流对象,不会触发终端操作。常见的中间操作包括:

  • filter(Predicate):过滤元素
  • map(Function):映射操作
  • flatMap(Function):扁平化操作
  • sorted(Comparator):排序
  • distinct():去重
  • limit(n):限制流中元素个数
  • skip(n):跳过前 n 个元素

① filter:过滤元素

import java.util.stream.Stream;public class FilterDemo {public static void main(String[] args) {Stream.of("Java", "Python", "Go", "C++").filter(lang -> lang.length() > 3).forEach(System.out::println);}
}

② map:映射操作

将元素转换为新的形式:

import java.util.stream.Stream;public class MapDemo {public static void main(String[] args) {Stream.of("java", "python", "c++").map(String::toUpperCase).forEach(System.out::println);}
}

③ flatMap:扁平化处理

将流中的元素展开成单个元素流:

import java.util.stream.Stream;public class FlatMapDemo {public static void main(String[] args) {Stream.of("Java,Python", "Go,C++").flatMap(lang -> Stream.of(lang.split(","))).forEach(System.out::println);}
}

④ sorted:排序

对流进行排序:

import java.util.stream.Stream;public class SortedDemo {public static void main(String[] args) {Stream.of(5, 3, 8, 1, 2).sorted().forEach(System.out::println);}
}

3.2 终端操作(Terminal)

终端操作会触发流的执行,并返回结果。常见的终端操作包括:

  • forEach(Consumer):遍历
  • collect(Collectors):收集
  • count():计数
  • reduce(BinaryOperator):合并
  • min(Comparator)max(Comparator):最小值和最大值
  • anyMatchallMatchnoneMatch:匹配操作

① collect:将流转换为集合

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class CollectDemo {public static void main(String[] args) {List<String> list = Stream.of("Java", "Python", "Go").collect(Collectors.toList());System.out.println(list);}
}

② reduce:合并元素

import java.util.stream.Stream;public class ReduceDemo {public static void main(String[] args) {int sum = Stream.of(1, 2, 3, 4).reduce(0, Integer::sum);System.out.println("Sum: " + sum);}
}

四、并行流处理

Java Stream 支持多线程并行处理,通过 parallelStream() 可以实现自动并行计算。

import java.util.List;public class ParallelStreamDemo {public static void main(String[] args) {List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6);// 并行流处理numbers.parallelStream().map(num -> num * 2).forEach(System.out::println);}
}

五、使用 Stream 处理用户数据

import java.util.List;
import java.util.stream.Collectors;class User {String name;int age;public User(String name, int age) {this.name = name;this.age = age;}
}public class StreamCase {public static void main(String[] args) {List<User> users = List.of(new User("Alice", 23),new User("Bob", 30),new User("Charlie", 27),new User("David", 35));// 筛选年龄大于25岁的用户,并按年龄排序List<String> names = users.stream().filter(u -> u.age > 25).sorted((u1, u2) -> Integer.compare(u1.age, u2.age)).map(u -> u.name).collect(Collectors.toList());System.out.println("筛选结果: " + names);}
}

六、总结

  1. Stream 提供了简洁、易读的集合操作方式,常用于数据过滤、映射、聚合等操作。
  2. 中间操作返回新的流对象,不执行终端操作不会触发计算。
  3. 终端操作触发流的计算并返回结果。
  4. 并行流可轻松实现多线程并行处理。

✅ 使用 Stream 可以提高代码的可读性和开发效率,尤其在集合数据处理时非常实用!

http://www.dtcms.com/wzjs/551205.html

相关文章:

  • 上海购物网站建设家用电脑怎么做网站服务器
  • 官网建站模板库自己怎么做网站卖车
  • 嘉兴市网站建设施工企业汛期应急预案
  • 常州创新优典网站建设c 网站开发
  • 公司flash网站模板代做网页设计
  • 为什么邮箱突然进不去了总提示正在进入不安全网站php网站中水印怎么做
  • 商城网站如何建设asp漂亮的办公家具公司网站源码
  • 广州网站开发公司刷手机网站关键词
  • 网站建设项目安排计划表网站开发女生可以做吗
  • 什么推广网站好禄劝网络推广外包
  • 九江网站推广如何增加网站外链
  • 做图专业软件下载网站wordpress react 影响
  • 网站编辑注意问题哪些网站做任务可以赚钱
  • 网页策划案的范文无锡优化网站价格
  • 广州市增城区建设局网站是什么学设计的学校
  • 中国建设银行黑龙江支行官方网站网页设计心得体会200
  • 做网站的公司 洛阳织梦企业网站
  • 公司备案证查询网站查询系统软件或网站是怎么做的
  • 科学家做实验的网站制作网站首页分为哪几部分
  • 阐述网站建设利益网页美工设计网站
  • 深圳住房和建设局网站办事跟踪青岛招聘信息最新招聘信息
  • 备案网站wordpress管理员帐号
  • 免费源代码网站福州医疗网站建设
  • 宣城网站制作宿迁网站建设SEO优化营销
  • 如何建设自己的网站来获取流量高端装修公司名称
  • 专业网页设计和网站制作公司wordpress 链接小图标
  • 诊断网站seo现状网站建站建设怎么做
  • 南阳专业网站制作费用美的公司网站建设的目的
  • 网站建设栏目图片遵义网帮你分类信息网
  • 住房和城乡建设厅网站办事大厅网站的功能定位和建设运营规划