Java 将List中所有item中的某一个字段值提出来生成一个新的List

例如:public class A{
private String a1;
private String a2;
各元素的get(),set()方法 略...
}
list<A> as ;(已有若干条数据)
list<String> a1s = new ArrayList<A>() ;
。。。。。。。。

将as中的所有item的a1取出 生成新的List<String> a1s;
有没有简洁一点的方法可以两三行代码就解决问题
foreach遍历然后再添加的方法就不需要了
}
list<A> as ;(已有若干条数据)
list<String> a1s = new ArrayList<A>() ;
。。。。。。。。

将as中的所有item的a1取出 生成新的List<String> a1s;
有没有简洁一点的方法可以两三行代码就解决问题
foreach遍历然后再添加的方法就不需要了
例如:public class A{
private String a1;
private String a2;
各元素的get(),set()方法 略...
}
list<A> as ;(已有若干条数据)
list<String> a1s = new ArrayList<A>() ;
。。。。。。。。

将as中的所有item的a1取出 生成新的List<String> a1s;
有没有简洁一点的方法可以两三行代码就解决问题
foreach遍历然后再添加的方法就不需要了

第1个回答  推荐于2018-02-27
as .forEach(n -> a1s.add(n.a1));

第2个回答  2016-05-30
可以用lambdaj框架,之前用过,里面有抽取list里对象属性为新list的方法,不过我找了一下现在好像不好下载了,真的需要的话可以找找.开源中国上有实例,但是没看到下载.http://developer.51cto.com/art/201202/317772.htm本回答被提问者和网友采纳
第3个回答  2021-03-12
as.stream().map(A::getA1).collect(Collectors.toList());
第4个回答  2018-01-23
List<User> list = new ArrayList<User>();
User user1 = new User("第一位","用户1");
list.add(user1);
User user2 = new User("第二位","用户2");
list.add(user2);
User user3 = new User("第三位","用户3");
list.add(user3);
List<String> tableNames=list.stream().map(User::getMessage).collect(Collectors.toList());
System.out.println("输出第一个:"+tableNames);
List<String> orders=list.stream().map(User::getOrder).collect(Collectors.toList());
System.out.println(orders)
第5个回答  2016-05-30
重新new一个在加进去不就行了吗