Lambda.Stream使用

本文通过实例演示了如何使用 Java 的 Stream API 对实体类集合进行操作,包括获取所有 ID、提取并去重年龄数据,展示了 Lambda 表达式和 Stream API 在数据处理上的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类

@Data
public class StreamTest {
	private Integer id;
	private Integer age;
	private String name; 

	public StreamTest(Integer id, Integer age, String name) {
	    this.id = id;
	    this.age = age;
	    this.name = name;
	}
}

测试Lambda.Stream

public static void main(String[] args) {
    List<StreamTest> list = new ArrayList<>();
    StreamTest object  = new StreamTest(1,25,"ABC");
    StreamTest object1 = new StreamTest(2,24,"DEF");
    StreamTest object2 = new StreamTest(3,25,"GHI");
    StreamTest object3 = new StreamTest(4,18,"JKL");
    list.add(object);
    list.add(object1);
    list.add(object2);
    list.add(object3);

    List<Integer> ids = list.stream().map(StreamTest::getId).collect(Collectors.toList());
    System.err.println("所有的id : "+ids);

    List<Integer> ages = list.stream().map(StreamTest::getAge).collect(Collectors.toList());
    System.out.println("未去重的年龄 : "+ages);

    List<Integer> agess = list.stream().map(StreamTest::getAge).distinct().collect(Collectors.toList());
    System.err.println("已去重的年龄 : "+agess);
}

输出结果

所有的id : [1, 2, 3, 4]
未去重的年龄 : [25, 24, 25, 18]
已去重的年龄 : [25, 24, 18]
stream.sorted使用lambda表达式来实现排序功能。Lambda表达式是一种简洁的写法,用于定义匿名函数,可以在代码中直接使用而无需定义具体的方法。 在stream.sorted方法中,我们可以使用lambda表达式作为参数传递给sorted方法。lambda表达式的语法形式为:(参数) -> 表达式或代码块。 Lambda表达式中的参数是用来接收stream中的元素,表达式或代码块则是用来定义排序的逻辑。在排序逻辑中,可使用java.util.Comparator接口提供的方法来指定排序规则。 例如,假设我们有一个List<Integer>的stream,我们可以使用以下lambda表达式实现排序: stream.sorted((a, b) -> a.compareTo(b)) 在这个例子中,我们使用了一个lambda表达式来定义排序逻辑。lambda表达式的参数a和b分别表示stream中的两个元素,表达式a.compareTo(b)表示对a和b进行比较。 在这个例子中,我们使用了Integer的compareTo方法来进行比较,该方法会返回一个整数值,用于表示两个元素的大小关系。如果返回结果为负数,则a小于b;如果返回结果为正数,则a大于b;如果返回结果为0,则a等于b。 通过这个lambda表达式,我们可以实现对stream中的元素按照升序进行排序。 总结起来,stream.sorted使用lambda表达式可以实现对stream中的元素进行排序。通过lambda表达式,我们可以自定义排序的逻辑,使得排序更加灵活和自由。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值