From 405da77bb0708821d0eed49b397389b58f364ecf Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 15 Jul 2019 17:41:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=95=B0=E7=BB=84=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E5=B0=B1=E8=A1=8C=E9=9A=8F=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/MathUtils.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java index cf4631bfd..47922816e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MathUtils.java @@ -4,9 +4,7 @@ import com.sun.nio.sctp.PeerAddressChangeNotification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; +import java.util.*; import java.util.concurrent.ThreadLocalRandom; @@ -172,11 +170,23 @@ public class MathUtils { return 0; } + /** + * 根据数组索引就行随机 + * @param sourceArray + * @param randomNums + * @return + */ public static List randomForOneArray(int sourceArray[], int randomNums) { List result = new ArrayList<>(); int length = sourceArray.length; + Set cacheIndexs = new HashSet<>(); while (randomNums>0){ - result.add(sourceArray[randomInt(length)]); + int randomPos = randomInt(length); + if(cacheIndexs.contains(randomPos)){ + continue; + } + cacheIndexs.add(randomPos); + result.add(sourceArray[randomPos]); randomNums--; } return result;