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

运行结果

宋远桥
苏星河
石破天
张三丰
目录
打赏
0
1
1
0
139
分享
相关文章
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
Java快速入门之判断与循环
本文介绍了编程中的流程控制语句,主要包括顺序结构、判断结构(if语句和switch语句)以及循环结构(for、while和do...while)。通过这些语句可以精确控制程序的执行流程。if语句有三种格式,分别用于简单条件判断、二选一判断和多条件判断。switch语句适用于有限个离散值的选择判断,而循环结构则用于重复执行某段代码,其中for循环适合已知次数的情况,while循环适合未知次数但有明确结束条件的情况,do...while则是先执行后判断。文中还提供了多个示例和练习,帮助读者理解并掌握这些重要的编程概念。
|
1月前
|
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
110 17
|
2月前
|
Java之for循环
Java 提供了三种 for 循环方式:fori、foreach 和 Stream.foreach。fori 是最早的循环形式,现已较少使用;foreach 是对 fori 的语法糖,编译时会自动转换;Stream.foreach 结合 lambda 表达式使用,代码更简洁,但不支持 break 和 return。
96 11
Java之for循环
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
148 63
Java循环操作哪个快?
本文探讨了Java中stream API与传统for循环在性能上的对比,通过多个示例分析了不同场景下两者的优劣。作者指出,尽管stream API使代码更简洁,但不当使用会降低可读性和性能,特别是在处理大数据量时。实验结果显示,在多数情况下,普通for循环的性能优于stream API,尤其是在单次操作耗时较短但需多次执行的场景中。文章建议开发者在设计初期就考虑全局流程,避免重复使用stream流,以提升代码质量和性能。
Java循环操作哪个快?
Java循环操作哪个快?
本文探讨了Java中Stream API与传统for循环的性能对比及适用场景。作者通过实际案例分析,指出在某些情况下,过度使用Stream API会导致代码可读性和维护性下降。测试结果显示,在数据量较小的情况下,普通for循环的性能优于Stream API,尤其是在涉及多次类似操作时。因此,建议在开发中根据具体需求选择合适的遍历方式,以提高代码的可读性和性能。
Java循环操作哪个快?
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
78 12
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
104 6
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。