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}