生成 5 个随机字符串并将它们添加到 Java 中的 Set

bfc*_*bfc 3 java string random set

我是 Java 初学者,有以下问题。

如何生成 5 个随机字符串并将它们添加到Set?

Ped*_*nço 7

首先,让我们创建集合:

Set<String> set = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)

现在,让我们生成 5 个随机字符串。有很多方法可以做到这一点,这里有一个关于它的答案。但由于您没有要求特定的长度,让我们继续:

String randomStr = Long.toHexString(Double.doubleToLongBits(Math.random()));
Run Code Online (Sandbox Code Playgroud)

现在,让我们重复随机生成 5 次:

for (int i = 0; i < 5; i++) {
    set.add(Long.toHexString(Double.doubleToLongBits(Math.random())));
}
Run Code Online (Sandbox Code Playgroud)

现在,问题是这并不能保证集合会有 5 个随机字符串,因为我们可能有类似的字符串。为了确保这一点,我们应该这样做:

while (set.size() < 5) {
    set.add(Long.toHexString(Double.doubleToLongBits(Math.random())));
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将继续生成随机字符串,直到集合至少包含 5 个。我不会检查它是否已经包含该字符串,因为根据定义,集合不包含重复元素。因此,添加副本不会增加大小。