Java 从 Set<String> 中随机获取不重复的字符串
可以使用Java的Random类来实现从一个Set
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomSetExample {
public static void main(String[] args) {
Set<String> stringSet = new HashSet<>();
stringSet.add('String1');
stringSet.add('String2');
stringSet.add('String3');
stringSet.add('String4');
stringSet.add('String5');
Set<String> randomStrings = getRandomStrings(stringSet, 3);
for (String randomString : randomStrings) {
System.out.println(randomString);
}
}
public static Set<String> getRandomStrings(Set<String> stringSet, int count) {
if (count > stringSet.size()) {
throw new IllegalArgumentException('Count cannot be greater than the size of the set.');
}
Set<String> randomStrings = new HashSet<>();
Random random = new Random();
while (randomStrings.size() < count) {
int randomIndex = random.nextInt(stringSet.size());
String randomString = (String) stringSet.toArray()[randomIndex];
randomStrings.add(randomString);
}
return randomStrings;
}
}
这个示例代码首先创建了一个包含多个字符串的Set,然后调用getRandomStrings方法从该Set中随机取3个不重复的字符串,并将结果打印输出。getRandomStrings方法会根据传入的count参数来判断需要取几个字符串,然后使用Random类生成一个随机索引,通过toArray方法获取Set中的元素数组,并根据随机索引来获取对应的字符串,将其添加到结果的Set中,直到结果Set的大小达到count为止。最后返回结果Set。
原文地址: https://www.cveoy.top/t/topic/pe8e 著作权归作者所有。请勿转载和采集!