package com.qianhe.common.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MtUtils {
    /**
     * 随机抽取列表数据
     */
    public static <T> List<T> getRandomList(List<T> dataList, int size) {
        // 边界条件处理：避免参数异常
        if (dataList == null || dataList.isEmpty()) {
            return new ArrayList<>();
        }
        // 如果请求数量大于列表长度，直接返回所有元素（或根据需求抛异常）
        if (size >= dataList.size()) {
            return new ArrayList<>(dataList);
        }
        if (size <= 0) {
            return new ArrayList<>();
        }
        List<T> result = new ArrayList<>();
        Random random = new Random();
        while (result.size() < size) {
            int randomIndex = random.nextInt(dataList.size());
            T element = dataList.get(randomIndex);
            // 确保不重复
            if (!result.contains(element)) {
                result.add(element);
            }
        }
        return result;

    }
}
