package org.dromara.zhishu.util;

import java.util.*;
import java.util.stream.Collectors;

public class ListUtils {

    /**
     * 根据两个字段组合去重
     *
     * @param list      数据列表
     * @param key1      第一个字段名
     * @param key2      第二个字段名
     * @return          去重后的列表
     */
    public static List<Map<String, Object>> removeDuplicatesByTwoKeys(
            List<Map<String, Object>> list, String key1, String key2) {

        Set<List<Object>> seen = new HashSet<>();
        List<Map<String, Object>> result = new ArrayList<>();

        for (Map<String, Object> map : list) {
            if (map.containsKey(key1) && map.containsKey(key2)) {
                List<Object> compositeKey = Arrays.asList(map.get(key1), map.get(key2));
                if (!seen.contains(compositeKey)) {
                    seen.add(compositeKey);
                    result.add(map);
                }
            }
        }

        return result;
    }
}
