首页 > 其他分享 >初识stream流

初识stream流

时间:2023-10-07 09:28:02浏览次数:34  
标签:stream Person list personList add 初识 new public

 

下面是stream的 filter 和 forEach 的使用

filter 来过滤出满足条件的元素  

forEach 逐一处理流中的元素

import java.util.ArrayList;
import java.util.List;
 
public class Demo2Steam {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("小昭");
        list.add("殷离");
        list.add("张三");
        list.add("张三丰");
        list.stream()
                .filter(name -> name.startsWith("张"))
                .filter(name -> name.length() == 3)
                .forEach(name -> System.out.println(name));
    }
}



anyMatch : 遍历流,判断集合里面元素是否有符合条件的数据,有就返回true

 boolean anyMatch = list.stream().anyMatch(x -> x > 6);
        
 System.out.println("是否存在大于6的值:" + anyMatch);

 

allMatch : 遍历流,判断集合里面元素是否都符合条件的数据,全部符合就返回true

boolean flag = folderFileList.stream().allMatch(folderFile -> StringUtils.isNotEmpty(folderFile.getFileUrl()));

 

 map(Person::getName) : 获取符合的字段  

collect:把流数据收集到集合当中

public class StreamTest {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("Tom", 8900, 23, "male", "New York"));
        personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
        personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
        personList.add(new Person("Anni", 8200, 24, "female", "New York"));
        personList.add(new Person("Owen", 9500, 25, "male", "New York"));
        personList.add(new Person("Alisa", 7900, 26, "female", "New York"));

        List<String> fiterList = personList.stream().filter(x -> x.getSalary() > 8000).map(Person::getName)
                .collect(Collectors.toList());
        System.out.print("高于8000的员工姓名:" + fiterList);
    }
}

 

聚合(max、min、count)

public class StreamTest {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");

        Optional<String> max = list.stream().max(Comparator.comparing(String::length));
        System.out.println("最长的字符串:" + max.get());
    }
}

 

public class StreamTest {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);

        // 自然排序
        Optional<Integer> max = list.stream().max(Integer::compareTo);
        System.out.println("自然排序的最大值:" + max.get());
    
    }
}

 

public class StreamTest {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("Tom", 8900, 23, "male", "New York"));
        personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
        personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
        personList.add(new Person("Anni", 8200, 24, "female", "New York"));
        personList.add(new Person("Owen", 9500, 25, "male", "New York"));
        personList.add(new Person("Alisa", 7900, 26, "female", "New York"));

        Optional<Person> max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
        System.out.println("员工工资最大值:" + max.get().getSalary());
    }
}

 

 英文字符串数组的元素全部改为大写。整数数组每个元素+3。

public class StreamTest {
    public static void main(String[] args) {
        String[] strArr = { "abcd", "bcdd", "defde", "fTr" };
        List<String> strList = Arrays.stream(strArr).map(String::toUpperCase).collect(Collectors.toList());

        List<Integer> intList = Arrays.asList(1, 3, 5, 7, 9, 11);
        List<Integer> intListNew = intList.stream().map(x -> x + 3).collect(Collectors.toList());

        System.out.println("每个元素大写:" + strList);
        System.out.println("每个元素+3:" + intListNew);
    }
}

 

标签:stream,Person,list,personList,add,初识,new,public
From: https://www.cnblogs.com/fcc1/p/17732364.html

相关文章

  • Streamlit项目:乐高风格马赛克设计工坊~打造个性化马赛克图案的平台
    文章目录1前言2项目概述2.1项目背景和目标2.2功能和特性2.3技术实现2.4开发计划2.5预期成果2.6应用场景3使用指南3.1源代码使用指南3.2普通网页用户使用指南3.3文件保存3.3.1导出图像文件3.3.2获取像素RGB数据3.4注意事项4实现细节4.1准备工作4.2编写代码4.3运......
  • 深入探讨Java Stream流:数据处理的新思维
    文章目录1.流式思想1.1输入流与输出流1.2Stream流2.使用Stream流的步骤3.获取Stream流3.1容器3.2数组4.Stream流中间操作方法4.1`filter(Predicate<?superT>predicate)`4.2`limit(longmaxSize)`4.3`skip(longn)`4.4`distinct()`4.5`sorted()`和`sorted(Compar......
  • CentOS8 Stream 网卡配置操作
    CentOS8 已废弃network.service,网卡操作需要使用nmcli,当前整理配置文件操作及相关命令命令:nmcli配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0配置单个ipv4地址IP:60.247.159.221  掩码:255.255.255.0  网关:60.247.159.1[root@ebs-113436~]#vim/etc/......
  • CodeForces 1864H Asterism Stream
    洛谷传送门CF传送门好题。考虑计算\(x\)落在\([1,n-1]\)的概率。设\(f_i\)为\(x\)经过\(i\)的概率,答案即为\(\sum\limits_{i=1}^{n-1}f_i\)。\(f\)有一个朴素的递推:\[f_i=\begin{cases}\frac{1}{2}(f_{i-1}+f_{\frac{i}{2}})&2\midi\\\fr......
  • 初识openMP
    openMP关于并行程序我写的一个程序运行效率太低了,等不了。所以尝试并行。目前流行的并行程序设计方法是:分布式内存结构上使用MPI,共享内存结构上使用Pthreads或OpenMP。我这个场合是使用openMP。多个线程的执行顺序是不能保证的。我们一般并不是要对相同代码在多个线程并行执行......
  • Go - Creating JSON Data Streams from Structs
    Problem: YouwanttocreatestreamingJSONdatafromstructs.Solution: CreateanencoderusingNewEncoderintheencoding/jsonpackage,passingitanio.Writer.ThencallEncodeontheencodertoencodestructsdatatoastream. Theio.Writerinterfa......
  • Go - Parsing JSON Data Streams Into Structs
    Problem: YouwanttoparseJSONdatafromastream.Solution: CreatestructstocontaintheJSONdata.CreateadecoderusingNewDecoderintheencoding/jsonpackage,thencallDecodeonthedecodertodecodedataintothestructs. InthisfirstJSONf......
  • hackthebox streamIO
    信息收集端口扫描nmap-sT--min-rate10000-p-10.129.64.95-oAnmap/ports由于端口比较多所以需要对端口进行详细服务的扫描字符操作grepnamp/ports|awk-F'/''{print$1}'|paste-sd','获得nmap需要的端口数据当端口比较多的时候可以将该段数据echo到某个......
  • 初识c++
    C++之父-本贾尼·斯特劳斯特卢普示例代码#include<iostream>//C++标准输入输出流的头文件等同于C语言stdio.husingnamespacestd;//为了减少命名冲突intmain(intargc,charconst*argv[]){ cout<<"helloworldc++"<<endl; return0;}作用域控制符......
  • stream流的思想
     作用:结合了Lambda表达式,简化集合,数组的操作使用步骤:先得到一条stream流水线,并把数据放上去使用中间方法对流水线上的数据进行操作使用终结方法对流水线上的数据进行操作获取方式方法名说明单列集合defaultStream<E>stream()Collection中的默认方法......