EN
Java - get random element from HashSet
0 points
In this article, we would like to show you how to get a random element from HashSet in Java.
In this example, we generate a random number between 0
and HashSet size
. Then we iterate through the HashSet till we reach the element located at the randomNumber
position.
xxxxxxxxxx
1
import java.util.*;
2
3
public class Example {
4
5
public static void main(String[] args) {
6
Set<String> letters = new HashSet<>();
7
8
letters.add("A");
9
letters.add("B");
10
letters.add("C");
11
letters.add("D");
12
letters.add("E");
13
14
int size = letters.size();
15
int randomNumber = new Random().nextInt(size);
16
int i = 0;
17
18
for (String letter : letters) {
19
if (i == randomNumber)
20
System.out.println(letter);
21
i++;
22
}
23
}
24
}
Output:
xxxxxxxxxx
1
B
In this example, we generate a random number between 0
and HashSet size
. Then using iterator we iterate through the HashSet till we reach the element located at the randomNumber
position.
xxxxxxxxxx
1
import java.util.*;
2
3
public class Example {
4
5
public static void main(String[] args) {
6
Set<String> letters = new HashSet<>();
7
8
letters.add("A");
9
letters.add("B");
10
letters.add("C");
11
letters.add("D");
12
letters.add("E");
13
14
System.out.println(getRandomElement(letters));
15
}
16
17
private static <String> String getRandomElement(Set<String> hashset) {
18
int randomNumber = new Random().nextInt(hashset.size()); // generate random number
19
20
Iterator<String> iterator = hashset.iterator();
21
22
int index = 0; // current index
23
String randomElement = null; // random element to return
24
25
while (iterator.hasNext()) {
26
27
randomElement = iterator.next();
28
29
30
if (index == randomNumber) // if current index is equal to random number
31
return randomElement;
32
33
index++;
34
}
35
36
return randomElement;
37
}
38
}
Output:
xxxxxxxxxx
1
E
In this example, we convert numbers
HashSet into an array and then access the random element from it.
xxxxxxxxxx
1
import java.util.*;
2
3
public class Example {
4
5
public static void main(String[] args) {
6
Set<Integer> numbers = new HashSet<>();
7
8
numbers.add(1);
9
numbers.add(2);
10
numbers.add(3);
11
numbers.add(4);
12
numbers.add(5);
13
14
Integer[] lettersArray = numbers.toArray(new Integer[numbers.size()]);
15
16
int randomNumber = new Random().nextInt(numbers.size());
17
18
System.out.println(lettersArray[randomNumber]);
19
}
20
}
Output:
xxxxxxxxxx
1
2