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

恒通建设集团有限公司网站渭南 网站集约化建设

恒通建设集团有限公司网站,渭南 网站集约化建设,网页设计与制作项目设计思路,淘宝上做微请帖的在哪个网站java中map是把集合每个元素重新映射,元素个数不变,但是元素值发生了变化。而flatMap从字面上来说是压平这个映射,实际作用就是将每个元素进行一个一对多的拆分,细分成更小的单元,返回一个新的Stream流,新的…

    java中map是把集合每个元素重新映射,元素个数不变,但是元素值发生了变化。而flatMap从字面上来说是压平这个映射,实际作用就是将每个元素进行一个一对多的拆分,细分成更小的单元,返回一个新的Stream流,新的流元素个数增加。

    java官方给出的示例如下:

# 按行读取文件内容
Stream<String> lines = Files.lines(path);
# 将每一行文字按照空格拆分为单词
Stream<String> words = lines.flatMap(line -> Stream.of(line.split(" +")));

    如下所示的文本:

hello world
this is a test txt
done

    经过这个转换,得到的结果如下:

[hello, world, this, is, a, test, txt, done]

    我们大概知道,flatMap压平的作用,就是把原来的三行字符串文字变为了一个流,流数组中每个元素是单词。 

    ============

    我们假设有这样的需求,有一个[[1,3],[2,4]]的二维数组,我们要得到一个一维数组[1,3,2,4]。那么这里的flatMap就正好排上用场,原来是二维的,现在压平为一维,正好分解了。

List<Integer> lista = new ArrayList<>();
lista.add(1);
lista.add(3);List<Integer> listb = new ArrayList<>();
listb.add(2);
listb.add(4);
List<List<Integer>> listc = new ArrayList<>();
listc.add(lista);
listc.add(listb);
System.out.println(listc);
List<Integer> listd = listc.stream().flatMap(ele -> ele.stream()).collect(Collectors.toList());
System.out.println(listd);

    运行程序打印信息如下:

[[1, 3], [2, 4]]
[1, 3, 2, 4]

    flatMap里面需要传入一个Function参数,这里根据需要将数组转为stream。其实可以直接传入一个函数名:Collection::stream,效果是一样的。

    完整代码如下:

package org.example;import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class FlatMapExample {public static void main(String[] args) {List<Integer> lista = new ArrayList<>();lista.add(1);lista.add(3);List<Integer> listb = new ArrayList<>();listb.add(2);listb.add(4);List<List<Integer>> listc = new ArrayList<>();listc.add(lista);listc.add(listb);System.out.println(listc);List<Integer> listd = listc.stream().flatMap(Collection::stream).collect(Collectors.toList());System.out.println(listd);try {Stream<String> stream = Files.lines(Paths.get("test.txt"));// stream.forEach(System.out::println);List<String> words = stream.flatMap(line -> Stream.of(line.split(" +"))).collect(Collectors.toList());System.out.println(words);} catch (IOException e) {throw new RuntimeException(e);}}
}

    运行截图:

 

    Stream对象经过一次操作之后,内容就会被清除,同时流也被关闭。如果还进行第二次其他操作,那么就会报错:

stream has already been operated upon or closed 

     所以进行流操作,一般都是把所有的流程都以链式写法写在一起,最后得到结果。

http://www.yayakq.cn/news/59230/

相关文章:

  • 建手机网站怎么收费线上宣传方式
  • 网站说明书的详细说明wordpress文章列表添加字段
  • 莱芜装修网站微信网站是多少
  • 西安网站seo 优帮云做视频网站需要什么软件有哪些
  • 网站访问量来源施工企业资质承包范围
  • 网站更名策划方案免费google账号注册入口
  • 网站建设开发计入什么会计科目长沙哪个平台做网站好
  • 建设银行网站多少关于网站建设的求职意向
  • 设计师网站崩了新闻发布网站建设实训小结
  • 网站维护中 页面网站框架设计图
  • 艾纳网站建设深圳做微信网站
  • frontpage网站模板下载wordpress 上传错误
  • 蒙自做网站的公司有什么网站可以做编程题
  • 新乡河南网站建设展台设计展会展位设计
  • 做网站怎样做才有百度快照苏州网站制作价格
  • 网站seo优化是什么意思系统开发网站
  • html网站设计作品wordpress 判断页面名称
  • 哪个网站的体验做的最好东莞网站建设兼职
  • 厦门网站专业建设二手车网站开发过程
  • 集团网站建设特色在线制作gif
  • 有没有做网站的广州品牌设计
  • 河南生产型企业网站建设自己动手建设网站
  • 房产中介 网站开发上海如何做网站
  • 东莞网站搭建哪里好温州自助建站公司
  • 十大免费ppt课件网站关键词点击工具
  • 专门做橱柜衣柜效果图的网站百度如何收录网站
  • 做服装网站设计书软文宣传推广
  • phpcms v9做网站wifi小程序搭建
  • 旅游网站优化方案wordpress gif 压缩
  • 织梦网站后台管理教程广州公司注册流程及需要的材料