package com.qmth.exam.reserve.util;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Function;

/**
 *  集合合并帮助类
 */
public class UnionUtil {

    /**
     *  两个List根据对象中的属性取并集
     * @param listOne 集合1
     * @param listTwo 集合2
     * @param attributeExtractor 比较的属性
     * @return  返回2个List对象的并集
     * @param <T> 对象
     */
    public static <T> List<T> unionByAttribute(List<T> listOne, List<T> listTwo, Function<T, ?> attributeExtractor) {
        Set<T> set = new LinkedHashSet<>();
        set.addAll(listOne);
        set.addAll(listTwo);
        return new ArrayList<>(set);
    }

}
