java8中List根据某一属性去重

最近再给一个创新创业孵化园做一个wab管理平台,项目中有这么一个需求:每一个入孵入驻的公司需要选择工位,后台管理列表需要通过查询工位来确定这个公司现在入驻在哪个园区中,一个公司不可能只有一个工位,所以检索工位的话会查出来很多条记录,但是园区这个字段都是一样的,我只需要知道是哪个园区就好了,这时候就需要给查出来的List去重了。
这里写图片描述
java8中List根据某一属性去重_第1张图片

关键代码:
cpList=cpList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(CompanyPosition::getZoneId))),ArrayList::new));

通过上面的这行代码可筛选CompanyPosition这个实体中zoneId的记录只留下一条记录,从而达到去重的效果。聪明的你学会了吗?

你可能感兴趣的:(Java基础)