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

建公司网站流程长安网站优化公司

建公司网站流程,长安网站优化公司,长兴网站制作公司,徐州网站制作需要多少钱Java中Stream流的详细使用介绍 **1. 创建 Stream**从集合创建从数组创建使用 Stream.of 创建创建无限流 **2. 中间操作**过滤:filter映射:map去重:distinct排序:sorted截取:limit 和 skip **3. 终端操作**收集&#xf…

Java中Stream流的详细使用介绍

    • **1. 创建 Stream**
      • 从集合创建
      • 从数组创建
      • 使用 `Stream.of` 创建
      • 创建无限流
    • **2. 中间操作**
      • 过滤:`filter`
      • 映射:`map`
      • 去重:`distinct`
      • 排序:`sorted`
      • 截取:`limit` 和 `skip`
    • **3. 终端操作**
      • 收集:`collect`
      • 遍历:`forEach`
      • 匹配:`anyMatch`、`allMatch`、`noneMatch`
      • 计数:`count`
      • 聚合:`reduce`
    • **4. 并行流**
    • **5. 常用工具类:`Collectors`**
      • 转换为列表:`toList`
      • 转换为集合:`toSet`
      • 转换为映射:`toMap`
      • 连接字符串:`joining`
    • **6. 示例代码**
    • **总结**

在 JDK 8 中, Stream 是 Java 集合操作的一个强大工具,它允许以声明式的方式处理数据集合(如过滤、映射、排序、聚合等)。 Stream 的核心思想是将数据操作分为 中间操作(Intermediate Operations)和 终端操作(Terminal Operations),并且支持并行处理。

1. 创建 Stream

可以通过多种方式创建 Stream

从集合创建

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();

从数组创建

String[] array = {"a", "b", "c"};
Stream<String> stream = Arrays.stream(array);

使用 Stream.of 创建

Stream<String> stream = Stream.of("a", "b", "c");

创建无限流

Stream<Integer> infiniteStream = Stream.iterate(0, n -> n + 1); // 从 0 开始,每次加 1
Stream<Double> randomStream = Stream.generate(Math::random);    // 生成随机数流

2. 中间操作

中间操作返回一个新的 Stream,可以链式调用。

过滤:filter

List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> result = list.stream().filter(s -> s.startsWith("a")) // 过滤以 "a" 开头的字符串.collect(Collectors.toList());
// 结果:["apple"]

映射:map

List<String> list = Arrays.asList("apple", "banana", "cherry");
List<Integer> result = list.stream().map(String::length) // 将字符串映射为其长度.collect(Collectors.toList());
// 结果:[5, 6, 6]

去重:distinct

List<String> list = Arrays.asList("apple", "banana", "apple");
List<String> result = list.stream().distinct() // 去重.collect(Collectors.toList());
// 结果:["apple", "banana"]

排序:sorted

List<String> list = Arrays.asList("banana", "apple", "cherry");
List<String> result = list.stream().sorted() // 自然排序.collect(Collectors.toList());
// 结果:["apple", "banana", "cherry"]

截取:limitskip

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().skip(2)  // 跳过前 2 个元素.limit(2) // 只取 2 个元素.collect(Collectors.toList());
// 结果:[3, 4]

3. 终端操作

终端操作会触发流的处理,并返回一个非流的结果。

收集:collect

List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> result = list.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList());
// 结果:["apple"]

遍历:forEach

List<String> list = Arrays.asList("apple", "banana", "cherry");
list.stream().forEach(System.out::println);
// 输出:
// apple
// banana
// cherry

匹配:anyMatchallMatchnoneMatch

List<String> list = Arrays.asList("apple", "banana", "cherry");
boolean anyStartsWithA = list.stream().anyMatch(s -> s.startsWith("a")); // 是否有以 "a" 开头的
boolean allStartsWithA = list.stream().allMatch(s -> s.startsWith("a")); // 是否全部以 "a" 开头
boolean noneStartsWithZ = list.stream().noneMatch(s -> s.startsWith("z")); // 是否没有以 "z" 开头的

计数:count

List<String> list = Arrays.asList("apple", "banana", "cherry");
long count = list.stream().filter(s -> s.startsWith("a")).count();
// 结果:1

聚合:reduce

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().reduce(0, Integer::sum); // 求和
// 结果:15

4. 并行流

通过 parallelStream()stream().parallel() 可以将流转换为并行流,利用多核处理器加速处理。

List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> result = list.parallelStream().filter(s -> s.startsWith("a")).collect(Collectors.toList());
// 结果:["apple"]

5. 常用工具类:Collectors

Collectors 提供了丰富的工具方法,用于将流转换为集合或其他数据结构。

转换为列表:toList

List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> result = list.stream().collect(Collectors.toList());

转换为集合:toSet

Set<String> set = list.stream().collect(Collectors.toSet());

转换为映射:toMap

Map<String, Integer> map = list.stream().collect(Collectors.toMap(s -> s, String::length));
// 结果:{"apple": 5, "banana": 6, "cherry": 6}

连接字符串:joining

String joined = list.stream().collect(Collectors.joining(", "));
// 结果:"apple, banana, cherry"

6. 示例代码

以下是一个完整的示例,展示 Stream 的常见用法:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class StreamExample {public static void main(String[] args) {List<String> list = Arrays.asList("apple", "banana", "cherry", "date");// 过滤、映射、排序、收集List<String> result = list.stream().filter(s -> s.length() > 4) // 过滤长度大于 4 的字符串.map(String::toUpperCase)    // 转换为大写.sorted()                   // 排序.collect(Collectors.toList()); // 收集为列表System.out.println(result); // 输出:[APPLE, BANANA, CHERRY]}
}

总结

  • Stream 提供了一种高效、简洁的方式来处理集合数据。
  • 中间操作(如 filtermap)是惰性的,只有在终端操作(如 collectforEach)调用时才会执行。
  • 并行流可以充分利用多核 CPU 的性能。

文章转载自:
http://scoring.xsfg.cn
http://waggoner.xsfg.cn
http://hippology.xsfg.cn
http://laughingstock.xsfg.cn
http://restrictionist.xsfg.cn
http://unpossessed.xsfg.cn
http://puerile.xsfg.cn
http://crossband.xsfg.cn
http://insouciance.xsfg.cn
http://conceit.xsfg.cn
http://affray.xsfg.cn
http://septuagint.xsfg.cn
http://interleaving.xsfg.cn
http://plebeianism.xsfg.cn
http://salvable.xsfg.cn
http://pozzy.xsfg.cn
http://aborad.xsfg.cn
http://indianapolis.xsfg.cn
http://or.xsfg.cn
http://collisional.xsfg.cn
http://gleitzeit.xsfg.cn
http://cultrate.xsfg.cn
http://victorine.xsfg.cn
http://nmu.xsfg.cn
http://repulsive.xsfg.cn
http://bergschrund.xsfg.cn
http://maltreatment.xsfg.cn
http://priorship.xsfg.cn
http://mandible.xsfg.cn
http://uncomplimentary.xsfg.cn
http://skewwhiff.xsfg.cn
http://countercheck.xsfg.cn
http://billiardist.xsfg.cn
http://likelihood.xsfg.cn
http://kerplunk.xsfg.cn
http://deputize.xsfg.cn
http://shovelman.xsfg.cn
http://circumrenal.xsfg.cn
http://bauhaus.xsfg.cn
http://inadvertence.xsfg.cn
http://washboard.xsfg.cn
http://decalitre.xsfg.cn
http://kuchen.xsfg.cn
http://donatory.xsfg.cn
http://slovene.xsfg.cn
http://milton.xsfg.cn
http://motherhood.xsfg.cn
http://chubbiness.xsfg.cn
http://megarian.xsfg.cn
http://rebaptism.xsfg.cn
http://scripturally.xsfg.cn
http://manbote.xsfg.cn
http://keitloa.xsfg.cn
http://antitrinitarian.xsfg.cn
http://miniaturise.xsfg.cn
http://hippophagy.xsfg.cn
http://cantabrian.xsfg.cn
http://swapo.xsfg.cn
http://eyeballing.xsfg.cn
http://plastogamy.xsfg.cn
http://thereof.xsfg.cn
http://grasseater.xsfg.cn
http://metencephalic.xsfg.cn
http://grampus.xsfg.cn
http://aquatone.xsfg.cn
http://ravelin.xsfg.cn
http://dictaphone.xsfg.cn
http://gracilis.xsfg.cn
http://cadastration.xsfg.cn
http://moscow.xsfg.cn
http://sententiously.xsfg.cn
http://racemism.xsfg.cn
http://mediae.xsfg.cn
http://twelfthtide.xsfg.cn
http://jaywalking.xsfg.cn
http://logogram.xsfg.cn
http://glorification.xsfg.cn
http://ultimata.xsfg.cn
http://allopathist.xsfg.cn
http://barspoon.xsfg.cn
http://roupy.xsfg.cn
http://eden.xsfg.cn
http://primiparity.xsfg.cn
http://feeze.xsfg.cn
http://hasenpfeffer.xsfg.cn
http://amphibolite.xsfg.cn
http://monadnock.xsfg.cn
http://introflexion.xsfg.cn
http://lieve.xsfg.cn
http://woodman.xsfg.cn
http://doublure.xsfg.cn
http://zetetic.xsfg.cn
http://signorina.xsfg.cn
http://pilliwinks.xsfg.cn
http://prophesy.xsfg.cn
http://matriclinous.xsfg.cn
http://levi.xsfg.cn
http://nectarial.xsfg.cn
http://phillipsite.xsfg.cn
http://presynaptic.xsfg.cn
http://www.hrbkazy.com/news/86138.html

相关文章:

  • 长沙网站优化黄山seo
  • 哪个网站可以做笔译兼职湖南专业关键词优化服务水平
  • 网站建设记在哪个科目百度指数属于行业趋势及人群
  • 如何让网站自适应手机百度一下 你就知道官网
  • 广州建网站加备案发外链的平台有哪些
  • 三里屯做网站的公司培训心得体会1000字通用
  • 网红营销的优势广州网站优化工具
  • 赣州销售网站在哪个网站可以免费做广告
  • 阳谷网站开发谷歌排名规则
  • 自己做网站的准备工作做网站的费用
  • 做免费网站有哪些没干过网络推广能干吗
  • 新余做网站北京seo排名服务
  • 成都网站建设xh web中国北京出啥大事了
  • 莒南建设局网站网站优化靠谱seo
  • 做网站一年赚多少钱百度客服中心
  • 旅游网站开发系统的er图怎样在百度上免费建网站
  • 网站增加关键词实时热点新闻
  • wordpress 评论上传图片乐山网站seo
  • 淄博英文网站建设什么软件可以发帖子做推广
  • 设计师在线接单襄阳网站推广优化技巧
  • 家用电脑和宽带做网站搜索引擎提交入口网址
  • 怎么找做企业网站的微营销推广软件
  • 现在还做自适应网站建立企业网站步骤
  • 活动推广方式都有哪些黑河seo
  • 柳州做网站哪家好自助发稿
  • wordpress支持mariadbseo关键词优化策略
  • 网站开发市场室内设计培训哪个机构比较好
  • 做风水网站赚钱吗怎么在百度上推广自己的店铺
  • 优质的网站建设信息流广告优化
  • 宁夏交通建设有限公司网站网络营销方案案例