广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java8新特性之Stream实例分享_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-24分类:Java技术浏览:905


导读:上一篇惠州北大青鸟老师给大家讲了Java8新特性的Stream,下面老师给大家分享一下Stream的实例。

上一篇惠州北大青鸟老师给大家讲了Java8新特性的Stream,下面老师给大家分享一下Stream的实例。

将以下代码放入 Java8Tester.java 文件中:

Java8Tester.java 文件

将以下代码放入 Java8Tester.java 文件中:

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

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

java6.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表