免费的个人网站html代码,app开发公司排行榜做软件的公司,东西湖区网站建设公司,下列 是计算机网页制作工具一、需求背景 有一个List集合,里面有n个Answer成员,成员种有m个属性,即: ListAnswer answers ...,现在我需要根据Answer的某一个属性对List去重(属性不固定),应该如何实现呢?
二、解决办法 需要满足上述需求#xff0c;并不难#xff0c;我们可以使用Java8提供的…一、需求背景 有一个List集合,里面有n个Answer成员,成员种有m个属性,即: ListAnswer answers ...,现在我需要根据Answer的某一个属性对List去重(属性不固定),应该如何实现呢?
二、解决办法 需要满足上述需求并不难我们可以使用Java8提供的流式编程接口来完成
自定义一个去重方法: /*** 根据传入的key去重* param keyExtractor* param T* return*/public static T PredicateT distinctByKey(Function? super T, Object keyExtractor) {MapObject, Boolean seen new ConcurrentHashMap();return t - seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) null;}调用该方法
ListAnswer distinctAnswers answerList.stream().filter(distinctByKey(Answer::getAnswerCode)) .collect(Collectors.toList());通过如上调用,我们得到的就是一个根据自定义属性去重后的list.