From 679ff1b7ce90a8ca81cf1d4fc5c019d7ffbeb3ce Mon Sep 17 00:00:00 2001 From: qinye <953218204@qq.com> Date: Sun, 8 Mar 2020 15:12:16 +0800 Subject: [PATCH] add method for RandomUtil --- .../java/cn/hutool/core/util/RandomUtil.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java index 33dfd05c8..d29cd14d4 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java @@ -374,7 +374,40 @@ public class RandomUtil { return result; } + /** + * 创建指定长度的随机索引 + * + * @param length 长度 + * @return 随机索引 + */ + public static int[] createRandomList(int length){ + int[] list = ArrayUtil.range(length); + for (int i = 0; i < length; i++) { + int random = randomInt(i,length); + ArrayUtil.swap(list,i,random); + } + return list; + } + /** + * 随机获得列表中的一定量的元素,返回List + * + * @param source 列表 + * @param count 随机取出的个数 + * @param 元素类型 + * @return 随机列表 + */ + public static List randomEleList(List source, int count){ + if(count >= source.size()){ + return source; + } + int[] randomList = ArrayUtil.sub(createRandomList(source.size()),0,count); + List result = new ArrayList<>(); + for (int e: randomList){ + result.add(source.get(e)); + } + return result; + } /** * 获得一个随机的字符串(只包含数字和字符) *