关于Java8 Stream流的利与弊 Java初学者,大神勿喷

   1:第一个队伍只要名字为3个字成员的姓名,存储到新集合     2:第一个队伍筛选之后只要前3人;存储到一个新集合     3:第2个队伍只要姓张的成员姓名;存储到一个新集合     4:第2个队伍不要前2人,存储到一个新集合     5:将2个队伍合并到一个队伍,存储到一个新集合     6:根据姓名创建Person对象,存储到一个新集合

//使用普通方法进行筛选 前面加了一个时间类
import java.util.ArrayList;public class Demo08List {    public static void main(String[] args) {    //定义一个时间类记录开始时间        long start=System.currentTimeMillis();    //定义一个集合        ArrayList<String>one=new ArrayList<>();        one.add("东方不败");        one.add("流星锤");        one.add("汪汪");        one.add("利亚东");        one.add("龙虎彪");        one.add("看风景");        one.add("超哥");        ArrayList<String>one1=new ArrayList<>();        for (String name : one) {            if (name.length()==3){                one1.add(name);            }        }        ArrayList<String>one2=new ArrayList<>();        for (int i = 0; i <3; i++) {            one2.add(one1.get(i));        }        ArrayList<String>two=new ArrayList<>();        two.add("独孤求败");        two.add("张百忍");        two.add("张无忌");        two.add("爱奇艺");        two.add("4399");        two.add("土豆");        two.add("张三丰");        ArrayList<String>two1=new ArrayList<>();        for (String name : two) {            if (name.startsWith("张")){                two1.add(name);            }        }        ArrayList<String>two2=new ArrayList<>();        for (int i = 2; i < two1.size(); i++) {            two2.add(two1.get(i));        }        ArrayList<String>all=new ArrayList<>();        all.addAll(one2);        all.addAll(two2);        ArrayList<Person>list=new ArrayList<>();        for (String name:all) {            list.add(new Person(name));        }        for (Person person : list) {            System.out.println(person);        }      //结束的时间        long end=System.currentTimeMillis();      //以毫秒值返回        System.out.println(end-start);    }}

使用Stream流的方式进行筛选
import java.util.ArrayList;import java.util.stream.Stream;

public class Demo09list {    public static void main(String[] args) {        long start=System.currentTimeMillis();        ArrayList<String> one=new ArrayList<>();        one.add("东方不败");        one.add("裘千仞");        one.add("大神");        one.add("利亚东");        one.add("秦始皇");        one.add("???");        one.add("超哥");

        Stream<String> stringStream = one.stream().filter(name ->                name.length() == 3).limit(3);        ArrayList<String>two=new ArrayList<>();        two.add("独孤求败");        two.add("张百忍");        two.add("张无忌");        two.add("爱奇艺");        two.add("4399");        two.add("土豆");        two.add("张三丰");      //  long start=System.currentTimeMillis();        Stream<String> towStream = two.stream().filter                (name -> name.startsWith("张")).skip(2);        Stream.concat(stringStream,towStream).map(name->                new Person(name)).forEach(p-> System.out.println(p));        long end=System.currentTimeMillis();
      //以毫秒值返回去
        System.out.println(end-start);    }}
Stream流固然可以简化代码格式但是这样的执行速度值得一试??

原文地址:https://www.cnblogs.com/liyado/p/10618365.html

时间: 2024-10-29 19:05:28

关于Java8 Stream流的利与弊 Java初学者,大神勿喷的相关文章

Java8 Stream流

Java8 Stream流 Java8关于map和flatMap的代码片段思考 Java8初体验(二)Stream语法详解 distinct() /* 返回一个流包含不同的元素(根据equals方法判断,null值并不会报空指针异常,会保留一个null). 对于有序的流保证稳定性,保留最先出现的元素,对于无序的流不保证稳定性. */ /** * Returns a stream consisting of the distinct elements (according to * {@link

【转】Java8 Stream 流详解

  当我第一次阅读 Java8 中的 Stream API 时,说实话,我非常困惑,因为它的名字听起来与 Java I0 框架中的 InputStream 和 OutputStream 非常类似.但是实际上,它们完全是不同的东西. Java8 Stream 使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合进行链状流式的操作. 本文就将带着你如何使用 Java 8 不同类型的 Stream 操作.同时您还将了解流的处理顺序,以及不同顺序的流操作是如何影响运行时性能的. 我们还将学习终端

java8 stream流操作

Stream 在对流进行处理时,不同的流操作以级联的方式形成处理流水线.一个流水线由一个源(source),0 到多个中间操作(intermediate operation)和一个终结操作(terminal operation)完成. 源:源是流中元素的来源.Java 提供了很多内置的源,包括数组.集合.生成函数和 I/O 通道等. 中间操作:中间操作在一个流上进行操作,返回结果是一个新的流.这些操作是延迟执行的. 终结操作:终结操作遍历流来产生一个结果或是副作用.在一个流上执行终结操作之后,该

Java8 Stream流使用及其基本原理

Stream流,是对集合对象操作的增强 基本使用 比如有一个Person类的集合:List<Person> personList,可以通过stream()对集合中的元素进行操作, 下面的操作流程可以归纳为 过滤-映射-收集. List<Integer> personIdList = personList.stream() //选出年龄大于20的Person对象 .filter(person -> person.getAge() > 20) //将Person对象映射成为

Java8 Stream流API常用操作

Java版本现在已经发布到JDK13了,目前公司还是用的JDK8,还是有必要了解一些JDK8的新特性的,例如优雅判空的Optional类,操作集合的Stream流,函数式编程等等;这里就按操作例举一些常用的Stream流操作; Stream流简介 A sequence of elements supporting sequential and parallel aggregate operations. Stream流是一个来自数据源的元素队列并支持聚合操作 Stream流中常用方法的分类 1.

Java8 Stream流方法

流是Java API的新成员,它允许以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).就现在来说,可以把它们看成遍历数据集的高级迭代器.此外,流还可以透明地并行处理,无需写任何多线程代码了! 流的使用一般包括三件事: •一个数据源(如集合)来执行一个查询: •一个中间操作链,形成一条流的流水线: •一个终端操作,执行流水线,并能生成结果. 流方法 含义 示例 filter (中间操作)该操作会接受一个谓词(一个返回boolean的函数)作为参数,并返回一个包括所有符合谓词的

Java8 Stream 流使用场景和常用操作

JAVA8内置的函数式编程接口应用场景和方式 pojo类对象和默认创建list的方法 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class DotaHero {

java8 stream流操作的flatMap(流的扁平化)

https://mp.weixin.qq.com/s/7Fqb6tAucrl8UmyiY78AXg https://blog.csdn.net/Mark_Chao/article/details/80810030 原文地址:https://www.cnblogs.com/alter888/p/11966114.html

Java8新特性——stream流

一.基本API初探 package java8.stream; import java.util.Arrays; import java.util.IntSummaryStatistics; import java.util.List; import java.util.Random; import java.util.stream.Collectors; import java.util.stream.IntStream; /** * @author [email protected] * @