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()));
 
    }
}

运行结果

宋远桥
苏星河
石破天
张三丰
相关文章
|
1月前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
23天前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
109 63
|
7天前
|
Java 程序员 API
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
|
14天前
|
NoSQL Java 调度
Java调度任务如何保证相同任务在一个周期里只执行一次?
【10月更文挑战第29天】Java调度任务如何保证相同任务在一个周期里只执行一次?
44 6
|
14天前
|
存储 NoSQL Java
Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
【10月更文挑战第29天】Java调度任务如何使用分布式锁保证相同任务在一个周期里只执行一次?
38 1
|
22天前
|
算法 Java 测试技术
🧑‍💻Java零基础:Java 的循环退出语句 break
【10月更文挑战第16天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
36 6
|
19天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
1月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
37 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
1月前
|
Java Shell 流计算
Flink-02 Flink Java 3分钟上手 Stream SingleOutputStreamOpe ExecutionEnvironment DataSet FlatMapFunction
Flink-02 Flink Java 3分钟上手 Stream SingleOutputStreamOpe ExecutionEnvironment DataSet FlatMapFunction
23 1
Flink-02 Flink Java 3分钟上手 Stream SingleOutputStreamOpe ExecutionEnvironment DataSet FlatMapFunction
|
1月前
|
Java 测试技术 数据安全/隐私保护
📖Java零基础-while循环语句的深度解析
【10月更文挑战第6天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 1