JAVA 使用stream流将List中的对象某一属性创建新的List

这篇具有很好参考价值的文章主要介绍了JAVA 使用stream流将List中的对象某一属性创建新的List。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JAVA 使用stream流将List中的对象某一属性创建新的List

1.stream流介绍

Java Stream是Java 8引入的一种新机制,它可以让我们以声明式方式操作集合数据,提供了更加简洁、优雅的集合处理方式。Stream是一个来自数据源的元素队列,并支持聚合操作。它的特点有:

  • Stream 不会修改原始数据源。
  • Stream 操作是延迟执行的。
  • Stream 操作可以是无限的(比如用于生成随机数的操作)。

2.Stream基础用法

  • 1.创建Stream
    可以使用Stream.of()方法从一组元素创建Stream,例如:
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);

也可以使用集合的stream()方法或parallelStream()方法创建Stream:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream1 = list.stream();            // 顺序流
Stream<Integer> stream2 = list.parallelStream();    // 并行流
  • 2.过滤
    可以使用filter()方法过滤Stream中的元素,例如:
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
Stream<Integer> filteredStream = stream.filter(x -> x % 2 == 0);  // 过滤偶数
  • 3.映射
    可以使用map()方法将Stream中的元素映射为另一种类型,例如:
Stream<String> stream = Stream.of("apple", "banana", "orange");
Stream<Integer> lengthStream = stream.map(String::length);  // 映射为字符串长度
  • 4.排序
    可以使用sorted()方法对Stream中的元素进行排序,例如:
Stream<Integer> stream = Stream.of(3, 1, 4, 1, 5, 9);
Stream<Integer> sortedStream = stream.sorted();  // 默认升序排序
  • 5.去重
    可以使用distinct()方法去除Stream中的重复元素,例如:
Stream<Integer> stream = Stream.of(1, 2, 3, 2, 1);
Stream<Integer> uniqueStream = stream.distinct();  // 去重
  • 6.统计
    可以使用count()方法统计Stream中的元素数量,例如:
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
long count = stream.count();  // 统计元素数量

3.具体用法

经常在业务处理时 我们需要将某个对象list中元素对象的某一属性放在一个新的list 里面,在Java的Stream API中,你可以使用map操作来将List中的元素的某一属性提取出来并组成一个新的List。
示例代码

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Person> personList = new ArrayList<>();
        personList.add(new Person("Alice", 25));
        personList.add(new Person("Bob", 30));
        personList.add(new Person("Charlie", 35));

        List<String> namesList = personList.stream()
                .map(Person::getName)
                .collect(Collectors.toList());

        System.out.println(namesList); // 输出:[Alice, Bob, Charlie]
    }
}

例子中,我们有一个Person类,它具有name和age属性。我们创建了一个包含多个Person对象的List。然后,我们使用Stream API对List进行操作。得到了一个name的新List文章来源地址https://www.toymoban.com/news/detail-778833.html

到了这里,关于JAVA 使用stream流将List中的对象某一属性创建新的List的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Stream流将List转换为Map

    以下程序用到的基础代码:

    2024年02月04日
    浏览(47)
  • Java判断List集合中的对象是否包含有某一元素

    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然后进行套着使用即可

    2024年02月11日
    浏览(75)
  • 快速去重:使用Java根据对象某一属性去除重复对象的实现指南

    🧐📚 Java中的对象去重操作?跟着小编一起学习吧!👇 在处理对象集合时,有时候我们需要根据对象的某个属性进行去重操作。Java给我们提供了多种方法来实现这个功能。今天,小编就来给大家介绍一下如何使用Java根据对象的某个属性进行去重操作。💫 提供一个自定义的

    2024年02月04日
    浏览(64)
  • Stream流 - 两个list集合对象属性的合并、对象属性值运算

    📅 合并两个 list<map>, 并将 userId 相同的所有属性合并到一个 map 中 list1中对象的属性:userId、userName list2中对象的属性:userId、gender、age 📌 最终总集合中对象的属性:userId、userName、gender、age 运行结果: 结果可见,userId 相同的所有属性合并到集合 list1中。 📅 合并两个

    2024年02月06日
    浏览(132)
  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)

    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。 集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。 我的学生类代码如下: 下面来添加一些测试用的数据,代码如下: 添加过滤条件

    2024年02月12日
    浏览(68)
  • java 使用stream累加对象中某个属性的值并返回总和

    假设有一个包含对象的List列表,每个对象都有一个属性value,可以使用Java 8中的Stream流来累加对象中某个属性的值并返回总和。以下是一些可能的实现方法: 1、使用reduce方法: 这里使用了mapToInt方法将每个对象转换为其value属性的值,然后使用reduce方法将这些值累加起来。

    2024年02月11日
    浏览(83)
  • list对象中如何根据对象中某个属性去重使用Java8流实现

    在 Java 8 的流操作中,可以使用 distinct 方法来对一个对象流进行去重,但是默认情况下它会使用对象的 equals() 方法来判断重复。如果你希望根据对象的某个属性进行去重,则可以使用 distinct 方法结合 map 方法来实现。 下面是一个示例代码,假设你有一个 List 对象 list,其中包

    2024年02月11日
    浏览(55)
  • Stream流中,根据对象去重+指定对象中的属性去重

    首先定义一个学生类: 在main方法中构造四个对象,其中第四个对象为重复对象,现在进行对象的去重、以及对象中某一属性的去重操作 一、根据对象去重: 以下代码写于main函数中: 运行结果如下,可以看到,stream流的distinct只是将对象去重,将相同的第三个和第四个对象

    2024年02月02日
    浏览(66)
  • 根据list中的对象某个属性 进行分组

    1,跟据某个属性分组OfficeId 2,根据某个属性分组OfficeId,汇总某个属性Money 3,根据某个属性添加条件过滤数据, 4,判断一组对象里面有没有属性值是某个值 5,取出一组对象的某个属性组成一个新集合 6.List 去重 7.java stream中的findFirst 返回出现的第一个结果 8.stream自定义k

    2024年02月11日
    浏览(52)
  • Java Stream比较两个List的差异,并取出不同的对象

    可以使用Java8的Stream API来比较两个List的差异,并取出不同的对象。   1. 将两个List转换为Stream类型;   2. 调用Stream的filter方法,将不同的对象过滤出来;   3. 将过滤出的不同的对象转换为List类型。         上述代码中,将两个List类型的对象list1和list2转换为Stream类型,并

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包