获取对象集合的某个属性的集合

本文分享了两种从对象集合中提取特定属性值的方法,并对比了它们的性能。第一种方法通过遍历集合并手动添加属性值到新集合;第二种方法利用JDK流API实现更简洁的代码。实测显示,遍历方式在相同集合长度下性能更优。

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

获取对象集合的某个属性的集合

获取对象集合的某个属性的集合

最近做项目用到了,要取某个对象的某个属性的集合,总结了两种方法,给大家分享一下。共同学习,共同进步。
User是一个对象,它有属性name,age。users是一个存放User的集合,需求是,要取users集合中每个对象的name属性,放入一个新的的集合中-names。

两种方法

1、遍历。遍历对象集合,把对象属性放到新的集合中。
话不多说,代码伺候。

// An highlighted block
public static void main(String[] args) {
	List<String> names = new ArrayList<String>();
	for (User user : users) {//users是一个User型集合
		names.add(user.getName());
	}
}

2、用jdk自带的功能,你只需要调用方法,就会返回一个想要的集合。代码伺候。

// An highlighted block
List<String> names = users.stream().map(item -> item.getName()).collect(Collectors.toList());

比较

对两种方法做了一个比较。同样长度的对象集合,性能方面第一种方法比较好,耗时比第二种方法要少一些。

如果你想要从 List 对象集合获取某个属性组成新的集合,可以使用 Java 8 的 Stream API 或者传统的 for 循环实现。下面分别给出这两种实现方式的示例代码。 Java 8 的 Stream API 实现方式: ```java List<User> userList = Arrays.asList( new User("Jack", 20), new User("Lucy", 18), new User("Tom", 25) ); List<Integer> ageList = userList.stream() .map(User::getAge) .collect(Collectors.toList()); System.out.println(ageList); // 输出结果为 [20, 18, 25] ``` 上述代码中,我们首先创建了一个 User 对象的 List 集合,然后使用 Stream API 中的 map 方法,将 List 中的每个 User 对象转换成其年龄属性,并使用 collect 方法将其转换为 List<Integer> 集合。最后通过打印输出的方式来展示转换结果。 传统的 for 循环实现方式: ```java List<User> userList = Arrays.asList( new User("Jack", 20), new User("Lucy", 18), new User("Tom", 25) ); List<Integer> ageList = new ArrayList<>(); for (User user : userList) { ageList.add(user.getAge()); } System.out.println(ageList); // 输出结果为 [20, 18, 25] ``` 上述代码中,我们遍历 User 对象的 List 集合,将每个 User 对象的年龄属性添加到一个新的 List<Integer> 集合中。最后通过打印输出的方式来展示转换结果。 上述示例代码中,我们使用 User 对象作为示例,你可以将其替换成你自己的对象,并使用对应的属性和方法名来实现相应的转换操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值