为了账号安全,请及时绑定邮箱和手机立即绑定

Android提取对象数组属性的数组

Android提取对象数组属性的数组

慕哥9229398 2019-04-18 17:11:00
我想知道是否有一种从自定义类对象数组中提取属性数组的有效方法。例如,如果我有这样的事情:public class MyClass {     private Double p1;     private String p2;     private MyProperty p3;     public MyClass() {}}在某个地方我有一个ArrayList,里面装满了这个类的对象:ArrayList<MyClass> listOfObjects = new ArrayList<>();我想获得其中一个属性的列表:ArrayList<MyProperty> listOfP3 = new ArrayList<>();ArrayList<Double> listOfP1 = new ArrayList<>();我能想到的只是迭代listOfObjects并将所需的属性逐个复制到一个新数组......有更好的方法吗?编辑: 如果可能的话,也可以使用Java 7
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

可能最干净的方法是使用Streams。像这样的东西:

List<String> listOfP2= listOfObjects.stream().map(x->x.getP2()).collect(Collectors.toList());

当然在MyClass中你需要为这些字段添加一个getter。


查看完整回答
反对 回复 2019-05-15
?
qq_笑_17

TA贡献1818条经验 获得超7个赞


在Java 8及更高版本中,您可以使用streamAPI(如@Amongalen已经回答的那样)。访问方法有不同的可能性:而不是x -> x.getP1()你可以写MyClass::getP1:


List<Double> p1List = myObjects.stream().map(MyClass::getP1).collect(Collectors.toList());

List<String> p2List = myObjects.stream().map(MyClass::getP2).collect(Collectors.toList());

List<MyProperty> p3List = myObjects.stream().map(MyClass::getP3).collect(Collectors.toList());


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 1205 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号