首页 > 编程语言 >java集合stream操作

java集合stream操作

时间:2023-12-25 11:34:50浏览次数:43  
标签:java stream Stream System newStream forEach 集合 out

forEach - 遍历

Stream<Integer> stream = Stream.of(2, 3, 1, 4);
stream.forEach(System.out::println);

filter - 过滤

Stream<Integer> stream = Stream.of(2, 3, 1, 4);
Stream<Integer> newStream = stream.filter(num -> num > 2);
System.out.print("过滤之后:");
newStream.forEach(x -> System.out.print(x + " "));

map - 转换

Stream<Integer> stream = Stream.of(2, 3, 1, 4);
Stream<Integer> newStream = stream.map(num -> num + 1);
newStream.forEach(System.out::println);

peek

该方法可以对流中的每一个元素进行操作,返回新的流.

Dog[] dogs = {new Dog("Tom", 1), new Dog("Jie", 2)};
Stream<Dog> dogStream = Arrays.stream(dogs);
Stream<Dog> newDogStream = dogStream.peek(dog -> dog.age = 999);
newDogStream.forEach(System.out::println);

flatMap

该方法产生一个流,它是通过将传入lambda表达式应用于当前流中所有元素所产生的结果连接到一起而获得的。(注意,这里的每个结果都是一个流。)

List<Stream<Integer>> streamList = new ArrayList<>();
Stream<Integer> stream1 = Stream.of(1, 2, 3);
Stream<Integer> stream2 = Stream.of(4, 5, 6);
Stream<Integer> stream3 = Stream.of(7, 8, 9);
streamList.add(stream1);
streamList.add(stream2);
streamList.add(stream3);

Stream<Stream<Integer>> stream = streamList.stream();
// flatMap里面的lambda表达式应当返回一个流
Stream<Integer> integerStream = stream.flatMap(x -> x);
integerStream.forEach(System.out::println);

limit和skip方法

limit方法可以对流进行裁剪,只取前n个流,skip方法则是跳过前n个流

Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5, 6);
Stream<Integer> newStream = stream.limit(4);
newStream.forEach(System.out::println);

// 要避免skip传入的值为负数
newStream.skip(Math.max(list.size() - 3, 0))

distinct - 去重

Stream<Integer> stream = Stream.of(1, 2, 3, 3, 1, 4);
Stream<Integer> newStream = stream.distinct();
newStream.forEach(System.out::println);

sorted - 排序

Stream<Integer> stream = Stream.of(4, 1, 3, 2);
Stream<Integer> newStream = stream.sorted();
newStream.forEach(System.out::println);

toArray - 转数组

Stream<String> namesStream = Stream.of("tom", "luck", "jerry");
String[] names = namesStream.toArray(String[]::new);
System.out.println(Arrays.toString(names));

collect

收集到集合

List<Integer> list = nums.stream().collect(Collectors.toList());
Set<Integer> set = nums.stream().collect(Collectors.toSet());
TreeSet<Integer> treeSet = nums.stream().collect(Collectors.toCollection(TreeSet::new));

toMap

需要注意key不能重复

Stream<String> namesStream = Stream.of("tom", "jack", "lucy");
Map<Character, String> namesMap = namesStream
        .collect(Collectors
                .toMap(k -> k.charAt(0), v -> v.toUpperCase()));
System.out.println(namesMap);

标签:java,stream,Stream,System,newStream,forEach,集合,out
From: https://www.cnblogs.com/jockming/p/17925760.html

相关文章

  • 用Java抓取天眼查公开失信人员信息
    做生意不管是大生意小生意讲究的是信用,如果信用不好的人,想必也没有人愿意和他做生意,最近我有几个朋友不是搞的装潢公司么,接了几个单子,想要问问通过一些信息能否查查对方是否是失信人员,当然都是通过正规渠道来的,还是老规矩,直接通过代码过去自动识别抓取。以下是一个简单的Java爬虫程......
  • java读取yaml文件并转化成json格式数据
    一、在maven项目中导入依赖<!--yaml文件转化成json格式--><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.29</version></de......
  • java md5图片内容加密
    在Java中,你可以使用Java的内置类来生成MD5哈希值。下面是一个示例,展示了如何使用Java将图片内容进行MD5加密:importjava.io.*;importjava.security.*;publicclassImageToMD5{publicstaticvoidmain(String[]args){try{//读取图片文件......
  • 基于java斗车交易系统设计与实现
    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对斗车交易系统进行了介绍,包括......
  • Java面试小练(十二)
    1).@RequestParam、@RequestBody、@PathVariable是SpringMVC中处理请求参数的三个注解。@RequestParam:用于处理URL中的请求参数,如?name=value。通过@RequestParam注解,可以指定参数的名称、required、defaultValue等属性。@RequestBody:用于处理请求体中的数据,如JSON......
  • 十五.JAVA.MAP.工具类,泛型
    嵌套类/内置类/内部类/内部接口K:keyV:valueE:elementR:ReturnTypeT:typeMap<K,V>:存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。HashMap:键采用哈希表结构,允许null键null值,线程不安全Like......
  • 十六,JAVA IO流
    //static<T>List<T> emptyList()  //     返回空的列表(不可变的)。  //static<K,V>Map<K,V> emptyMap()  //     返回空的映射(不可变的)。  //static<T>Set<T> emptySet()  //     返回空的set(不可变的)。......
  • Java基础-Spring篇
    Spring框架的七大模块SpringCore:框架的最基础部分,提供IoC容器,对bean进行管理。SpringContext:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。SpringDAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。SpringORM:提供了JPA、JDO、Hibernate......
  • Java静态类
    在Java中,静态类是一种特殊的类,它不能被实例化。静态类主要用于工具类或实现某些特定功能,例如工厂模式中的工厂类。要声明一个静态类,可以使用static关键字,如下所示:java复制代码publicstaticclassStaticClass{//静态类的成员和方法}静态类的特点如下:不能被实......
  • java基础语法api之随机数的介绍以及案例应用
    一:概述在实际开发应用中,我们都会看到,有许多的场景中需要使用到随机不确定的数。在这时,我们就需要用到API中的Random类。二:具体说明<1>JDK_API帮助文档中的说明Random:-该类的实例用于生成随机数构造方法:-Random():创建一个新的随机数生成器成员方法-intnextInt(intbound):获......