001/*
002 * Copyright 2015-2024 the original author or authors
003 *
004 * This software is licensed under the Apache License, Version 2.0,
005 * the GNU Lesser General Public License version 2 or later ("LGPL")
006 * and the WTFPL.
007 * You may choose either license to govern your use of this software only
008 * upon the condition that you accept all of the terms of either
009 * the Apache License 2.0, the LGPL 2.1+ or the WTFPL.
010 */
011package org.minidns.util;
012
013import java.util.Iterator;
014import java.util.Random;
015import java.util.Set;
016
017public class CollectionsUtil {
018
019    public static <T> T getRandomFrom(Set<T> set, Random random) {
020        int randomIndex = random.nextInt(set.size());
021        Iterator<T> iterator = set.iterator();
022        for (int i = 0; i < randomIndex; i++) {
023            if (!iterator.hasNext()) break;
024            iterator.next();
025        }
026        return iterator.next();
027    }
028}