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

邯郸做wap网站的公司张掖seo

邯郸做wap网站的公司,张掖seo,福州企业公司网站建设,一个网站的渠道网络建设Java中Stream流 Stream 使用flatMap处理嵌套集合: 有一个对象列表&#xff0c;每个对象又包含一个列表&#xff0c;可以使用flatMap来“展平”这个结构。 List<List<String>> listOfLists Arrays.asList(Arrays.asList("a", "b"),Arrays.a…

Java中Stream流

Stream

使用flatMap处理嵌套集合:
有一个对象列表,每个对象又包含一个列表,可以使用flatMap来“展平”这个结构。

List<List<String>> listOfLists = Arrays.asList(Arrays.asList("a", "b"),Arrays.asList("c", "d")
);
List<String> flatList = listOfLists.stream().flatMap(List::stream).collect(Collectors.toList());

使用peek进行调试:
peek方法可以在流的中间操作中插入一个动作,比如打印日志,而不会影响流的最终结果。

List<String> result = list.stream().filter(s -> s.startsWith("a")).peek(System.out::println) // 打印中间结果.map(String::toUpperCase).collect(Collectors.toList());

peek可以用来调试也可以塞对象,不改变流,如果你这个里面有对象,比如xxx.setXXX() 那么也会修改这个对象

使用groupingBy进行分组:
Collectors.groupingBy可以根据某个属性对元素进行分组。

Map<Integer, List<String>> map = list.stream().collect(Collectors.groupingBy(String::length));

使用reduce进行复杂聚合:
reduce方法可以用来执行更复杂的聚合操作,比如连接字符串。

String joined = list.stream().reduce("", (a, b) -> a + ", " + b);

使用IntStreamLongStreamDoubleStream进行基本类型操作

对于基本数据类型(int、long、double),可以使用IntStreamLongStreamDoubleStream来提高性能和内存使用效率。

int sum = IntStream.of(1, 2, 3, 4, 5).sum();

使用Stream.generateStream.iterate生成无限流

Stream.generate可以用来创建一个无限流,其中每个元素都是通过一个Supplier函数生成的。

Stream<Double> randoms = Stream.generate(Math::random);

Stream.iterate可以用来创建一个无限流,其中每个元素都是基于前一个元素计算得到的。

Stream<Integer> naturals = Stream.iterate(0, n -> n + 1);

使用Stream.collect的自定义收集器

collect方法非常灵活,可以配合自定义的Collector来实现复杂的收集逻辑。

Collector<T, ?, LinkedList<T>> toLinkedList = Collector.of(LinkedList::new,LinkedList::add,(left, right) -> { left.addAll(right); return left; }
);
List<T> linkedListOfT = stream.collect(toLinkedList);

使用Stream.concat合并两个流

Stream.concat方法可以用来合并两个流。

Stream<String> stream1 = Stream.of("a", "b", "c");
Stream<String> stream2 = Stream.of("d", "e", "f");
Stream<String> combined = Stream.concat(stream1, stream2);

使用Stream.peek进行调试

peek方法可以在流的处理过程中插入一个操作,用于调试。

List<String> result = list.stream().filter(s -> s.startsWith("a")).peek(System.out::println) // 打印中间结果.map(String::toUpperCase).collect(Collectors.toList());

使用Stream.anyMatch, Stream.allMatch, 和 Stream.noneMatch

这三个方法用于对流中的元素进行断言检查。

boolean anyStartsWithA = list.stream().anyMatch(s -> s.startsWith("a"));
boolean allStartsWithA = list.stream().allMatch(s -> s.startsWith("a"));
boolean noneStartsWithZ = list.stream().noneMatch(s -> s.startsWith("z"));

使用Stream.ofNullable处理可能为null的元素

Stream.ofNullable可以用来创建一个元素可能为null的流。

Stream<String> stream = Stream.ofNullable(getNullableValue());

使用flatMap处理多层嵌套结构

当处理多层嵌套的集合时,flatMap可以用来将多层结构“展平”成单个流。

Stream<List<List<String>>> nestedLists = Stream.of(listOfLists);
Stream<String> flatStream = nestedLists.flatMap(List::stream).flatMap(List::stream);

Optional

  1. 使用orElseGet延迟加载:
    orElseGet提供一个Supplier函数,只有在Optional为空时才调用。

    Optional<String> optional = Optional.ofNullable(getValue());
    String value = optional.orElseGet(() -> computeValue());
    
  2. 使用maporElse链式处理:
    map可以用来转换Optional中的值,如果Optional为空,则可以使用orElse提供默认值。

    String result = optional.map(String::toUpperCase).orElse("DEFAULT");
    
  3. 使用filter进行条件过滤:
    filter方法可以用来检查Optional中的值是否满足特定条件。

    Optional<String> filtered = optional.filter(s -> s.length() > 5);
    
  4. 使用ifPresent执行操作:
    如果Optional中有值,ifPresent执行一个操作。

    optional.ifPresent(System.out::println);
    
  5. 使用stream方法:
    Optional类有一个stream方法,可以将Optional转换为Stream,这样就可以使用Stream API进行进一步处理。

    optional.stream().map(String::toUpperCase).forEach(System.out::println);
    
http://www.hkea.cn/news/499266/

相关文章:

  • 网站建设软件开发的新闻北京关键词优化报价
  • 在上海做兼职在哪个网站好百度售后电话人工服务
  • 深圳网站开发招聘谁能给我个网址
  • 长沙做个网站多少钱怎样免费给自己的公司做网站
  • wordpress to微博优化营商环境条例
  • 做外贸通常用哪些网站seo网站监测
  • 电子商务网站建设解决方案必应搜索引擎
  • 企业网页制作与网站设计南京seo优化培训
  • sqlite开发网站想做网络推广的公司
  • 网页设计作业在线网站首页seo教程seo优化
  • 做个网站多钱域名备案查询系统
  • 饰品网站模板官网seo关键词排名系统
  • 文学网站做编辑百度笔记排名优化
  • 公司网站开发语言如何优化百度seo排名
  • 做网站较好的框架惠州百度推广排名
  • 网站建设和运营的课程推广软文发稿
  • 杭州企业网站建设方案ui培训
  • 个人站长做哪些网站好seo优化设计
  • 小白学做搭建网站软文街官方网站
  • 网站模板 可做采集站市场营销咨询
  • 家居网站建设素材天眼查询个人信息
  • 杭州专业网站排名优化交换链接的例子
  • 网站建设和数据容量整合seo的培训课程
  • 深圳 网站制作 哪家百度搜索排名优化哪家好
  • 网站运营者网址发稿平台
  • 内蒙古网站制作公司拼多多网店代运营要多少费用
  • 免费网站建设协议baike seotl
  • 做网站的好处和坏处怎么创建自己的网址
  • 兰州新区城乡建设局网站seo sem是什么职位
  • 衡水网站制作公司自媒体软文发布平台