⼯具类:list的交集、差集、并集import llections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
public class MtListUtil {
/**
* 返回对象属性的list
* @param list
* @param mapper
* @param <T>
字符串转数组在线工具
* @param <R>
* @return
*/
public static <T, R> List<R> getPropertyList(List<T> list, Function<? super T, ? extends R> mapper) {
List<R> result = new ArrayList<>();
if (llections.CollectionUtils.isEmpty(list)) {
return result;
}
result = list.stream().map(mapper).List());
return result;
}
/
**
* 获取两个list交集
* @param list1
* @param list2
* @return
*/
public static<T> List<T> getIntersectionList(List<T> list1, List<T> list2){
if(CollectionUtils.isNotEmpty(list1) && CollectionUtils.isNotEmpty(list2)){
return list1.stream().filter(item -> ains(item)).List());
}
return null;
}
/**
* 获取两个list差集(list1-list2)
* @param list1
* @param list2
* @return
*/
public static<T> List<T> getReduceList(List<T> list1,List<T> list2){
if(CollectionUtils.isEmpty(list2)){
return list1;
}
if(CollectionUtils.isNotEmpty(list1)){
return list1.stream().filter(item -> !ains(item)).List());
}
return null;
}
/**
* 获取并集
* @param list1
* @param list2
* @return
*/
public static<T> List<T> getUnionList(List<T> list1,List<T> list2){
if(CollectionUtils.isEmpty(list1)){
return list2;
}
if(CollectionUtils.isEmpty(list2)){
return list1;
}
List<T> unionList = list1.parallelStream().List());
unionList.addAll(list2);
return unionList;
}
/
**
* 获取去重并集
* @param list1
* @param list2
* @return
*/
public static<T> List<T> getDistinctUnionList(List<T> list1,List<T> list2){        List<T> unionList = UnionList(list1, list2);
return unionList.stream().distinct().List());
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。