Heim >Java >javaLernprogramm >Wie wähle ich zufällig ein Element aus einem Java HashSet oder LinkedHashSet aus?

Wie wähle ich zufällig ein Element aus einem Java HashSet oder LinkedHashSet aus?

DDD
DDDOriginal
2024-10-30 01:59:28278Durchsuche

How to Randomly Select an Element from a Java HashSet or LinkedHashSet?

Zufällige Elementauswahl aus einer Menge

Die Auswahl eines zufälligen Elements aus einer Menge ist ein häufiger Vorgang in verschiedenen Programmierszenarien. Java bietet verschiedene Arten von Sets, darunter HashSet und LinkedHashSet. Lassen Sie uns untersuchen, wie Sie diese Aufgabe effizient ausführen können.

Auswahl eines zufälligen Elements aus HashSet und LinkedHashSet

HashSet und LinkedHashSet von Java bieten eine praktische Möglichkeit, eindeutige Elemente zu speichern. Um ein zufälliges Element aus diesen Mengen auszuwählen, können Sie diesem Ansatz folgen:

<code class="java">int size = myHashSet.size();
int item = new Random().nextInt(size); // Use a shared Random object in practice
int i = 0;
for (Object obj : myHashSet) {
    if (i == item)
        return obj;
    i++;
}</code>

Diese Technik nutzt die folgenden Schritte:

  1. Bestimmen Sie die Größe der Menge (Größe).
  2. Generieren Sie eine zufällige Ganzzahl (Element) im Bereich [0, Größe-1].
  3. Iterieren Sie durch die festgelegten Elemente und behalten Sie dabei das i-te Element im Auge.
  4. Wenn i stimmt mit dem zufällig generierten Index (Element) überein und gibt das aktuelle Element als Zufallsauswahl zurück.

Dieser Ansatz stellt eine gleichmäßige Verteilung bei der Auswahl eines zufälligen Elements aus der Menge sicher und behält gleichzeitig die Reihenfolge der Menge bei LinkedHashSet.

Das obige ist der detaillierte Inhalt vonWie wähle ich zufällig ein Element aus einem Java HashSet oder LinkedHashSet aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn