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

网站建设 天津网站集约化建设的优势

网站建设 天津,网站集约化建设的优势,wordpress文章id,安全文化建设示范企业一、Stream API 说明 Java8中有两大最为重要的改变。第一个是 Lambda 表达式#xff1b;另外一个则是 Stream API。 Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充#xff0c;因为Stream API可以极大提供Ja…一、Stream API 说明 Java8中有两大最为重要的改变。第一个是 Lambda 表达式另外一个则是 Stream API。        Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充因为Stream API可以极大提供Java程序员的生产力让程序员写出高效率、干净、简洁的代码。        Stream 是 Java8 中处理集合的关键抽象概念它可以指定你希望对集合进行的操作可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简言之Stream API 提供了一种高效且易于使用的处理数据的方式 二、为何使用Stream API  实际开发中项目中多数数据源都来自于MysqlOracle等。但现在数据源可以更多了有MongDBRadis等而这些NoSQL的数据就需要Java层面去处理。      Stream 和 Collection 集合的区别Collection 是一种静态的内存数据结构而 Stream 是有关计算的。前者是主要面向内存存储在内存中后者主要是面向 CPU通过 CPU 实现计算 三、什么是 Stream  它是数据渠道用于操作数据源集合、数组等所生成的元素序列。 “集合讲的是数据Stream讲的是计算 注意 ①Stream 自己不会存储元素。 ②Stream 不会改变源对象。相反他们会返回一个持有结果的新Stream。 ③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。  四、Stream 的操作三个步骤  1- 创建 Stream         一个数据源如集合、数组获取一个流  2- 中间操作         一个中间操作链对数据源的数据进行处理  3- 终止操作( 终端操作)         一旦执行终止操作就执行中间操作链并产生结果。之后不会再被使用 4.1创建Stream的方式  一、通过集合来创建 Stream Java8 中的 Collection 接口被扩展提供了两个获取流的方法  default StreamE stream() : 返回一个顺序流default StreamE parallelStream() : 返回一个并行流//可以通过 Collection 系列集合提供的 stream() 顺序流ListString listArrays.asList(张三,李飞,刘霞,陈博);StreamString stream1list.stream();stream1.forEach(System.out::println);System.out.println(*****************************); // 可以通过 Collection 系列集合提供的 parallelStream() 并行流StreamString stream2list.parallelStream();stream2.forEach(System.out::println); 二、通过数组来创建 Stream Java8 中的 Arrays 的静态方法 stream() 可以获取数组流  static T StreamT stream(T[] array): 返回一个流 重载形式能够处理对应基本类型的数组  public static IntStream stream(int[] array)  public static LongStream stream(long[] array)  public static DoubleStream stream(double[] array) 注意学生类姓名年龄自己创建。 //通过Arrays中的静态方法 stream()获取一个数组流Student[] students new Student[3];students[0]new Student(mike,18);students[1]new Student(john,20);students[2]new Student(peter,16);StreamStudent stream Arrays.stream(students);stream.forEach(System.out::println); 三、通过Stream的of来创建 Stream 可以调用Stream类静态方法 of(), 通过显示值创建一个流。它可以接收任意数量的参数。     public staticT StreamT of(T... values) : 返回一个流 Student[] students new Student[3];students[0]new Student(mike,18);students[1]new Student(john,20);students[2]new Student(peter,16);//通过Stream的静态方法 of()StreamStudent streamStream.of(students);stream.forEach(System.out::println); 四、通过无限流来创建 Stream  可以使用静态方法 Stream.iterate() 和 Stream.generate(),创建无限流。  迭代         public staticT StreamT iterate(final T seed, final UnaryOperatorT f) 生成         public staticT StreamT generate(SupplierT s)  // Stream.iterate 创建Stream stream4 Stream.iterate(10, i - i10);stream4.limit(5).forEach(System.out::println);System.out.println(**************************);// Stream.generate 创建Stream stream3 Stream.generate(()- 88);stream3.limit(5).forEach(System.out::println); 4.2中间操作 多个中间操作可以连接起来形成一个流水线除非流水线上触发终止操作否则中间操作不会执行任何的处理而在终止操作时一次性全部处理称为“惰性求值”。 1-筛选和切片 //使用filter过滤集合中的奇数ListInteger list Arrays.asList(89,15,88,19,33,24,30);list.stream().filter(num-num%2!0).forEach(System.out::println);System.out.println(---------------------);//使用distinct去掉重复的字符串ListString list1 Arrays.asList(boy,happy,girl,happy,boy,boy);list1.stream().distinct().forEach(System.out::println );System.out.println(---------------------);//使用skip,limit跳过前两个的前三个元素ListInteger list2 Arrays.asList(10,20,30,40,50,60,70,80);list2.stream().skip(2).limit(3).forEach(System.out::println);int n3;StreamInteger integerStream Stream.of(10, 20, 30, 40, 50, 60);//跳过前n个非负元素返回剩下的流有可能为空流。integerStream.skip(n).forEach(integer - System.out.println(num integer));System.out.println(--------------------------);n3;StreamInteger st2 Stream.of(10, 20, 30, 40, 50, 60);// 当 n 0 时直接抛出了 IllegalArgumentException 异常。// 当 n0 时返回一个空流。// 当 n3 时打印了 前3个元素// 当 n7 时打印了所有元素st2.limit(n).forEach(integer - System.out.println(num integer)); skip与limit区别 skip  必须时刻监测流中元素的状态。才能判断是否需要丢弃。所以 skip 属于状态作。  limit 只关心截取的是不是其参数 maxsize 最大区间值其它毫不关心。一旦达到就立马中断操作返回流。所以 limit 属于一个中断操作。 2-映射 // 在Java 8 中如何使用Stream将List转换为Map使用Collectors.toMap方法进行转换。//1、指定key-valuevalue是对象中的某个属性值。ListStudent listArrays.asList(new Student(mike,22),new Student(zhang,20),new Student(john,21));MapString,Integer stuMaplist.stream().collect(Collectors.toMap(Student::getName,Student::getAge));System.out.println(stuMap);// 2、指定key-valuevalue是对象本身Student-Student 是一个返回本身的lambda表达式MapString,Student stuMap2list.stream().collect(Collectors.toMap(Student::getName,Student-Student));System.out.println(stuMap2);// 3、指定key-valuevalue是对象本身Function.identity()是简洁写法也是返回对象本身 (同2)MapString,Student stuMap3list.stream().collect(Collectors.toMap(Student::getName, Function.identity()));System.out.println(stuMap3);//计算所有平均年龄System.out.println(list.stream().mapToInt(Student::getAge).average().getAsDouble()); 3-排序 System.out.println(---Natural Sorting by Name---);ListStudent list Arrays.asList(new Student(mike,22),new Student(zhang,20),new Student(john,21));list.forEach(s - System.out.println( Name: s.getName(), Age:s.getAge()));System.out.println(\n---Sorting using Comparator by Age---);listlist.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());list.forEach(s - System.out.println( Name: s.getName(), Age:s.getAge()));System.out.println(\n---Sorting using Comparator by Age with reverse order---);listlist.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());list.forEach(s - System.out.println( Name: s.getName(), Age:s.getAge())); 4.3Stream 的终止操作 注map 和 reduce 的连接通常称为 map-reduce 模式因 Google用它来进行网络搜索而出名。 Collector 接口中方法的实现决定了如何对流执行收集的操作(如收集到 List、Set、Map)。 另外 Collectors 实用类提供了很多静态方法可以方便地创建常见收集器实例 具体方法与实例如下表
http://www.dnsts.com.cn/news/200308.html

相关文章:

  • 设计君网站邢台太行中学收费
  • 好口碑的网站制作安装价格做网站怎么设置背景
  • 酒店的网站建设方案小红书广告代理商
  • 问答论坛网站建设wordpress rt 17主题
  • 安徽建新建设工程有限公司网站二维码生成器支持微信扫码
  • 手机网站优势网站开发员的工作内容
  • 那个网站seo做的好的wordpress code 显示
  • 做外贸网站怎么做怎么给网站做超链接
  • 做打鱼网站企业网站主要有哪四种类型
  • 做装饰公司网站做运营需要看的网站
  • 静态网站教程人事管理系统
  • 广州网站建设(信科网络)703804散讲温州论坛
  • 使用二级域名会影响网站收录电商网站开发用什么语言
  • 企业网站开发php包装纸箱公司怎么做网站
  • 红色大气网络公司企业网站源码_适合广告设计规模以上工业企业主营业务收入
  • 网站建设网络推广seo长沙电子商务网站建设
  • 英语培训东莞网站建设数据分析师事务所
  • 做优惠网站多少钱推广普通话手抄报内容简短
  • ngrok做网站服务器职业培训机构资质
  • 给别人做违法网站泰安可以做网站的公司
  • 网络营销策划方案书深圳企业股权优化
  • 专业h5网站制作四川成都旅游必去景点
  • 韩国网站域名分类幻灯片模板
  • 网站建设期末实践报告千万别去代理记账公司
  • 网站是自己做还是让别人仿昆山公司网站制作
  • 网站当电话线商标注册查询怎么查询
  • 网站建设代理多少钱做外贸需要哪些网站有哪些
  • 刷评论网站推广好123上网主页免费
  • 南昌网站外包苏州制作网站的公司
  • 网站建设准备期对应网站中国导航电子地图