EN
                                
                            
                        Java - get random element from set
                                    4
                                    points
                                
                                1. Convert HashSet to ArrayList via constructor
public static String randomStringFromSet() {
	Set<String> set = new HashSet<>(Arrays.asList("A", "B", "C", "D", "E", "F"));
	List<String> list = new ArrayList<>(set);
	int size = list.size();
	int randIdx = new Random().nextInt(size);
	String randomElem = list.get(randIdx);
	return randomElem;
}
Example:
System.out.println(randomStringFromSet()); // C
System.out.println(randomStringFromSet()); // D
System.out.println(randomStringFromSet()); // B
Not very efficient because we need to create ArrayList based on HashSet.
So if the set is not too large it's ok solution.
2. Iteration + random number
public static String randomStringFromSet2() {
	Set<String> set = new HashSet<>(Arrays.asList("A", "B", "C", "D", "E", "F"));
	int size = set.size();
	int currIdx = 0;
	int randIdx = new Random().nextInt(size);
	for (String letter : set) {
		if (currIdx == randIdx) {
			return letter;
		}
		currIdx++;
	}
	return null;
}
Example:
System.out.println(randomStringFromSet2()); // D
System.out.println(randomStringFromSet2()); // F
System.out.println(randomStringFromSet2()); // E
- Iterate over the set and generate random number within size of the set.
 - Iterate over the elements of the set and keep index
 - If index is equal to the randomly generated index then return element from set.