`
zysnba
  • 浏览: 183989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Stream 完整实例

阅读更多
import java.util.ArrayList;
import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.Map;

public class Java8Tester {
   public static void main(String args[]){
      System.out.println("使用 Java 7: ");
       
      // 计算空字符串
      List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
      System.out.println("列表: " +strings);
      long count = getCountEmptyStringUsingJava7(strings);
       
      System.out.println("空字符数量为: " + count);
      count = getCountLength3UsingJava7(strings);
       
      System.out.println("字符串长度为 3 的数量为: " + count);
       
      // 删除空字符串
      List<String> filtered = deleteEmptyStringsUsingJava7(strings);
      System.out.println("筛选后的列表: " + filtered);
       
      // 删除空字符串,并使用逗号把它们合并起来
      String mergedString = getMergedStringUsingJava7(strings,", ");
      System.out.println("合并字符串: " + mergedString);
      List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
       
      // 获取列表元素平方数
      List<Integer> squaresList = getSquares(numbers);
      System.out.println("平方数列表: " + squaresList);
      List<Integer> integers = Arrays.asList(1,2,13,4,15,6,17,8,19);
       
      System.out.println("列表: " +integers);
      System.out.println("列表中最大的数 : " + getMax(integers));
      System.out.println("列表中最小的数 : " + getMin(integers));
      System.out.println("所有数之和 : " + getSum(integers));
      System.out.println("平均数 : " + getAverage(integers));
      System.out.println("随机数: ");
       
      // 输出10个随机数
      Random random = new Random();
       
      for(int i=0; i < 10; i++){
         System.out.println(random.nextInt());
      }
       
      System.out.println("使用 Java 8: ");
      System.out.println("列表: " +strings);
       
      count = strings.stream().filter(string->string.isEmpty()).count();
      System.out.println("空字符串数量为: " + count);
       
      count = strings.stream().filter(string -> string.length() == 3).count();
      System.out.println("字符串长度为 3 的数量为: " + count);
       
      filtered = strings.stream().filter(string ->!string.isEmpty()).collect(Collectors.toList());
      System.out.println("筛选后的列表: " + filtered);
       
      mergedString = strings.stream().filter(string ->!string.isEmpty()).collect(Collectors.joining(", "));
      System.out.println("合并字符串: " + mergedString);
       
      squaresList = numbers.stream().map( i ->i*i).distinct().collect(Collectors.toList());
      System.out.println("Squares List: " + squaresList);
      System.out.println("列表: " +integers);
       
      IntSummaryStatistics stats = integers.stream().mapToInt((x) ->x).summaryStatistics();
       
      System.out.println("列表中最大的数 : " + stats.getMax());
      System.out.println("列表中最小的数 : " + stats.getMin());
      System.out.println("所有数之和 : " + stats.getSum());
      System.out.println("平均数 : " + stats.getAverage());
      System.out.println("随机数: ");
       
      random.ints().limit(10).sorted().forEach(System.out::println);
       
      // 并行处理
      count = strings.parallelStream().filter(string -> string.isEmpty()).count();
      System.out.println("空字符串的数量为: " + count);
   }
   
   private static int getCountEmptyStringUsingJava7(List<String> strings){
      int count = 0;
       
      for(String string: strings){
       
         if(string.isEmpty()){
            count++;
         }
      }
      return count;
   }
   
   private static int getCountLength3UsingJava7(List<String> strings){
      int count = 0;
       
      for(String string: strings){
       
         if(string.length() == 3){
            count++;
         }
      }
      return count;
   }
   
   private static List<String> deleteEmptyStringsUsingJava7(List<String> strings){
      List<String> filteredList = new ArrayList<String>();
       
      for(String string: strings){
       
         if(!string.isEmpty()){
             filteredList.add(string);
         }
      }
      return filteredList;
   }
   
   private static String getMergedStringUsingJava7(List<String> strings, String separator){
      StringBuilder stringBuilder = new StringBuilder();
       
      for(String string: strings){
       
         if(!string.isEmpty()){
            stringBuilder.append(string);
            stringBuilder.append(separator);
         }
      }
      String mergedString = stringBuilder.toString();
      return mergedString.substring(0, mergedString.length()-2);
   }
   
   private static List<Integer> getSquares(List<Integer> numbers){
      List<Integer> squaresList = new ArrayList<Integer>();
       
      for(Integer number: numbers){
         Integer square = new Integer(number.intValue() * number.intValue());
           
         if(!squaresList.contains(square)){
            squaresList.add(square);
         }
      }
      return squaresList;
   }
   
   private static int getMax(List<Integer> numbers){
      int max = numbers.get(0);
       
      for(int i=1;i < numbers.size();i++){
       
         Integer number = numbers.get(i);
           
         if(number.intValue() > max){
            max = number.intValue();
         }
      }
      return max;
   }
   
   private static int getMin(List<Integer> numbers){
      int min = numbers.get(0);
       
      for(int i=1;i < numbers.size();i++){
         Integer number = numbers.get(i);
       
         if(number.intValue() < min){
            min = number.intValue();
         }
      }
      return min;
   }
   
   private static int getSum(List numbers){
      int sum = (int)(numbers.get(0));
       
      for(int i=1;i < numbers.size();i++){
         sum += (int)numbers.get(i);
      }
      return sum;
   }
   
   private static int getAverage(List<Integer> numbers){
      return getSum(numbers) / numbers.size();
   }
}
执行以上脚本,输出结果为:

$ javac Java8Tester.java
$ java Java8Tester
使用 Java 7:
列表: [abc, , bc, efg, abcd, , jkl]
空字符数量为: 2
字符串长度为 3 的数量为: 3
筛选后的列表: [abc, bc, efg, abcd, jkl]
合并字符串: abc, bc, efg, abcd, jkl
平方数列表: [9, 4, 49, 25]
列表: [1, 2, 13, 4, 15, 6, 17, 8, 19]
列表中最大的数 : 19
列表中最小的数 : 1
所有数之和 : 85
平均数 : 9
随机数:
-393170844
-963842252
447036679
-1043163142
-881079698
221586850
-1101570113
576190039
-1045184578
1647841045
使用 Java 8:
列表: [abc, , bc, efg, abcd, , jkl]
空字符串数量为: 2
字符串长度为 3 的数量为: 3
筛选后的列表: [abc, bc, efg, abcd, jkl]
合并字符串: abc, bc, efg, abcd, jkl
Squares List: [9, 4, 49, 25]
列表: [1, 2, 13, 4, 15, 6, 17, 8, 19]
列表中最大的数 : 19
列表中最小的数 : 1
所有数之和 : 85
平均数 : 9.444444444444445
随机数:
-1743813696
-1301974944
-1299484995
-779981186
136544902
555792023
1243315896
1264920849
1472077135
1706423674
空字符串的数量为: 2


http://www.runoob.com/java/arrays-union.html
分享到:
评论

相关推荐

    my_stream_ip.rar_P76Q_axi stream ip 实例_axi_stream_judgeaj9_strea

    学习axi stream ip 开发的实例

    C#中bitmap、stream、byte类型转换实例

    在处理图像时,我们可能会遇到需要在不同的数据类型之间转换的情况,比如从Bitmap到Stream,再到byte数组,最后再还原回Bitmap。这样的转换在上传图片、存储图片数据或在网络中传输时非常常见。本篇文章将详细介绍...

    678.676.JAVA基础教程_动态代理与Java8新特性-Stream的实例化(678).rar

    在Java 8中,集合类如List、Set和Map都引入了Stream的方法,如stream()和parallelStream(),它们可以生成一个Stream实例。Stream实例可以进行过滤、映射、排序等操作,并且可以与集合相互转换。 Stream的实例化有...

    Java8 Stream 各种实例

    看完不会你骂我 想要代码简洁美观 高大上

    spark及stream任务简单实现框架及使用实例

    Spark Stream的任务实现主要基于DStream(Discrete Stream)的概念,这是一种连续不断的数据流的抽象表示,由一系列时间间隔内的批次数据组成。开发者可以使用DStream进行基本的操作,如转换(Transformation)和...

    Java8新特性Stream流实例详解

    Java8新特性Stream流实例详解 Java 8 中引入了 Stream 流,用于操作数据源(集合、数组等)所生成的元素序列。Stream 流是数据渠道,具有声明性、可复合、可并行三个特性,使得 Stream 操作更简洁、更灵活、高效。...

    java8 stream的分组功能实例介绍

    Java 8 Stream 分组功能实例介绍 Java 8 Stream API 是 Java 8 中的一个重要特性,它提供了许多实用的功能来处理数据。其中,分组功能是 Java 8 Stream 中的一个重要组件。本文将详细介绍 Java 8 Stream 的分组功能...

    介绍Spring Cloud Stream与RabbitMQ集成

    介绍Spring Cloud Stream与RabbitMQ集成的代码示例。Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于创建事件驱动或消息驱动的微服务。

    计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 20. Stream的实例化.avi

    计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 20. Stream的实例化.avi

    Lesson23 Altera FPGA 全速漂移 开发指南 -- 基于FPGA-FX3 SlaveFIFO接口的StreamIN实例

    ### Altera FPGA 全速漂移开发指南 —— 基于FPGA-FX3 SlaveFIFO接口的StreamIN实例 #### StreamIN功能概述 在本教程中,我们将详细介绍如何利用Altera FPGA与FX3之间的SlaveFIFO接口来实现StreamIN功能。StreamIN...

    socket通信完整实例

    本实例将深入解析客户端和服务器端的Socket通信流程,帮助你理解并掌握这一核心技术。 首先,我们要理解Socket的基本概念。在计算机网络中,Socket就像一个通信端口,允许两个应用程序通过网络进行数据交换。在TCP/...

    通过项目实例学习Java Stream.pdf

    Java Stream是Java 8...通过以上实例,开发者可以更好地掌握如何利用Stream API处理集合数据,实现更高效、更简洁的代码。对于处理大量数据的业务场景,Java Stream结合Lambda表达式可以显著提升开发效率和代码质量。

    Java8 Stream中间操作实例解析

    Java8 Stream中间操作实例解析 Java8 Stream中间操作实例解析是Java8 Stream API的核心部分, Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。Stream API使用一种类似于SQL语句...

    Java8新特性之方法引用&Stream流应用实例md,学习代码

    在本文中,我们将重点关注两个关键特性:方法引用和Stream流,并结合实际应用实例进行深入探讨。 首先,我们来看一下方法引用。在Java 8之前,如果想要在Lambda表达式中使用已有的方法,我们需要手动编写方法体。但...

    C#加密数据报完整实例源码

    "C#加密数据报完整实例源码"是一个实际项目,它演示了如何使用C#的内置加密算法来保护数据报文。 在C#中,可以使用System.Security.Cryptography命名空间下的类来实现加密和解密操作。这个实例可能涵盖了以下关键...

    StreamAPI多次消费一个stream代码实例

    在Java 8中引入的Stream API极大地丰富了处理集合数据的...在需要多次消费Stream的情况下,可以使用`Supplier`来生成新的Stream实例,以满足需求。同时,理解并遵循这一原则,对于编写高效、安全的Java 8代码至关重要。

    axi stream 仿真模型,可用modelsim仿真

    然后,根据压缩包中的VIP文档学习如何在ModelSim中配置和实例化AXI Stream BFM。接着,创建一个测试平台,定义输入数据和期望的输出,利用BFM生成相应的激励。最后,在ModelSim中运行仿真,观察并分析结果,确认设计...

    linux c 下TCPsocket完整实例

    本实例将详细介绍如何在C语言环境下创建和使用TCP套接字进行数据传输。 首先,我们需要理解TCP协议的基本概念。TCP是一种面向连接的、可靠的传输层协议,它提供全双工通信,确保数据的顺序传输和错误检测。在建立...

    java使用stream流处理枚举信息的代码实例

    本实例将展示如何利用Stream API处理枚举(Enumeration)信息,从而提高代码的可读性和性能。首先,我们来理解枚举和Stream API的基本概念。 枚举在Java中是一种特殊的类,用于定义一组相关的常量。它们通常用于...

    java使用stream对日期排序

    如果需要自定义排序规则,可以创建一个`Comparator&lt;LocalDate&gt;`实例。 4. 自定义日期排序: 如果需要按照特定规则(例如,先按月份排序,再按日期排序)排序,可以这样实现: ```java List&lt;LocalDate&gt; ...

Global site tag (gtag.js) - Google Analytics