需求背景:使用实体里的多个属性重新构建集合
模拟需求:已知Organization对象有orgCode、orgName两个属性,同为String类型,现有多个Organization对象构成的list对象,需使用上述两个属性重新构建一个泛型为String的Set集合。
本质是合并流FlatMap的使用。
List<Organization> a = new ArrayList<>();
Organization organization1 = new Organization();
organization1.setOrgName("aa");
organization1.setOrgCode("bb");
Organization organization2 = new Organization();
organization2.setOrgName("cc");
organization2.setOrgCode("dd");
Organization organization3 = new Organization();
organization3.setOrgName("tt");
organization3.setOrgCode("bb");
a.add(organization1);
a.add(organization2);
a.add(organization3);
Set<String> set2 = a.stream().flatMap(o -> Stream.of(o.getOrgName(),o.getOrgCode())).collect(Collectors.toSet());
set2.forEach(System.out::println);
输出为:
aa
bb
cc
dd
tt
符合预期