Java Stream流高级应用,如何将一个集合对象的两个属性信息合并为一个集合列表

WorderhandleVo routerItem = new WorderhandleVo();
routerItem.setWorderhandleUserid("1");
routerItem.setWorderHandlernextid("2");

WorderhandleVo routerItem2 = new WorderhandleVo();
routerItem2.setWorderhandleUserid("1");
routerItem2.setWorderHandlernextid("4");

List<WorderhandleVo> routerItems = new ArrayList<>();
routerItems.add(routerItem);
routerItems.add(routerItem2);

// 获取集合对象中两个属性信息进行合并
// 方法1
List<String> userIds = routerItems.stream()
.flatMap(item -> Stream.of(item.getWorderhandleUserid(), item.getWorderHandlernextid()))
.collect(Collectors.toList());

System.out.println(userIds);

// 方法2
ArrayList<String> collect = routerItems.stream().collect(ArrayList::new, (list, item) -> {
list.add(item.getWorderhandleUserid());
list.add(item.getWorderHandlernextid());
}, ArrayList::addAll);


// 结果:[1, 2, 1, 4]

posted @ 2023-10-24 09:25  东峰叵,com  阅读(2)  评论(0)    收藏  举报