java同一个任务使用for循环与Stream比较

简介: java同一个任务使用for循环与Stream比较

一 任务

二 Persion类

package day13;
 
public class Persion {
   private String name;
    public Persion() {
    }
   public Persion(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
   public void setName(String name) {
        this.name = name;
    }
}

三 使用for实现

import java.util.ArrayList;
 
public class demo {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("迪丽热巴");
        list1.add("宋远桥");
        list1.add("苏星河");
        list1.add("石破天");
        list1.add("石中玉");
        list1.add("老子");
        list1.add("庄子");
        list1.add("洪七公");
        ArrayList<String> list1_0 = new ArrayList<String>();
        for (String s : list1) {
            if(s.length()==3){
                list1_0.add(s);
            }
        }
        ArrayList<String> list1_1 = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            list1_1.add(list1_0.get(i));
        }
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("古力娜扎");
        list2.add("张无忌");
        list2.add("赵丽颖");
        list2.add("尼格拉斯");
        list2.add("张天爱");
        list2.add("张三丰");
        ArrayList<String> list2_0 = new ArrayList<>();
        for (String s : list2) {
            if(s.startsWith("张")){
                list2_0.add(s);
            }
        }
       ArrayList<String> list2_1 = new ArrayList<>();
        for (int i = 2; i <list2_0.size(); i++) {
            list2_1.add(list2_0.get(i));
        }
        ArrayList<String> list3 = new ArrayList<>();
       list3.addAll(list1_1);
       list3.addAll(list2_1);
        ArrayList<Persion> persions = new ArrayList<>();
        for (String s : list3) {
            persions.add(new Persion(s));
        }
        for (Persion persion : persions) {
            System.out.println(persion.getName());
        }
    }
}

运行结果

宋远桥
苏星河
石破天
张三丰

四 使用Stream实现

import java.util.ArrayList;
import java.util.stream.Stream;
 
public class demo_test_for {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("迪丽热巴");
        list1.add("宋远桥");
        list1.add("苏星河");
        list1.add("石破天");
        list1.add("石中玉");
        list1.add("老子");
        list1.add("庄子");
        list1.add("洪七公");
       ArrayList<String> list2 = new ArrayList<>();
        list2.add("古力娜扎");
        list2.add("张无忌");
        list2.add("赵丽颖");
        list2.add("尼格拉斯");
        list2.add("张天爱");
        list2.add("张三丰");
       Stream<Persion> stream = Stream.concat(list1.stream().filter((name) -> name.length() == 3).limit(3),
                list2.stream().filter((name) -> (name.startsWith("张"))).skip(2))
                .map((name) -> new Persion(name));
        stream.forEach((Persion p)-> System.out.println(p.getName()));
 
    }
}

运行结果

宋远桥
苏星河
石破天
张三丰
相关文章
|
2月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
234 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
266 101
|
2月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
240 101
|
3月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
364 188
|
3月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
271 92
|
4月前
|
人工智能 Java
Java多任务编排技术
JDK 5引入Future接口实现异步任务处理,但获取结果不够灵活。Java 8新增CompletableFuture,实现异步任务编排,支持流式处理、多任务组合及异常处理,提升执行效率与代码可读性,简化并发编程复杂度。
110 0
|
5月前
|
人工智能 Java Go
java判断ExecutorService是否有任务
在Java中,ExecutorService用于管理线程池。本文介绍如何判断ExecutorService是否有任务正在执行或等待执行。通过创建固定大小的线程池、提交任务,并使用`awaitTermination()`方法结合超时时间,可以有效检测任务状态。此方法简单实用,适用于多种场景。文末附有代码示例及详细解读。
110 1
|
1月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
159 1