如何用一个对象集合中对象的某个属性生成一个新的集合

如何用一个对象集合中对象的某个属性生成一个新的集合


今天工作时遇到的一个小问题
通过循环也可以筛选出来但是感觉写出来不好看
于是上网查资料发现还有更简便的方法
java 1.8 新特性
stream()也可以做到
以从user类型集合取其id为例

// user 所带属性 id name sex 
List userList = new ArrayList<> ();
User user = new user("1","张三","男");
User user2 = new user("2","李四","男");
User user3 = new user("3","王五","男");
userList.add(user);
userList.add(user2);
userList.add(user3);
List userIds = userList.stream().map(User::getId).collect(Collectors.toList());

其中 map() 可以映射一个方法该方法会被应用到每个元素上,并将其映射成一个新的元素。
所以

//上面的原理实际上就是通过Stream() 方法将集合流化然后 通过 map() 映射user的getId() 得到所有用户的id 最后用collect()将所有id整合成一个新的集合

希望能对小伙伴有些帮助

你可能感兴趣的:(java)