Szenario:Java - Implementierung einer Round-Robin-Ringliste und Zählung der Zugriffszahl eines Elements?
Eine Liste, die drei Elemente [A, B, C] haben:
Sie können Kreis Zugriff es so oft wie Sie wollen. Und es gibt eine zusätzliche Zählfunktion, die Zugriffszahlen jedes Elements aufzeichnet.
Zum Beispiel, wenn es 7 Mal zugreifen, sollte zurück:
[A, B, C, A, B, C, A]
Und haben Zugriffszählregister jedes Element, wie folgend:
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 3 | +–––––––––––––––––––––––––––+ | B | 2 | +–––––––––––––––––––––––––––+ | C | 2 | +–––––––––––+–––––––––––––––+
Jede Antwort wäre sehr dankbar.
Grüße. In
eine weitere zusätzliche Funktion, die Anrufer erlauben, eine Liste Elemente angeben, die gefiltert werden sollen
aktualisiert. Noch 7 mal als Beispiel den Zugriff verwenden, Filtern [C]:
[A, B, A, B, A, B, A]
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 4 | +–––––––––––––––––––––––––––+ | B | 3 | +–––––––––––––––––––––––––––+ | C | 0 | +–––––––––––+–––––––––––––––+
Und sollte die anschließende Berufung auf getNextOne() immer den einen holen, die Zählung niedrig Zugriff ist (Simulieren Sie einen last- Balanced Accessing Count Implementierung.). Also, wenn zweiter Anrufer versucht es 10-mal auf den Zugriff, sollte zurück:
[C, C, C, B, C, A, B, C, A, B, C, A]
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 7 | +–––––––––––––––––––––––––––+ | B | 6 | +–––––––––––––––––––––––––––+ | C | 6 | +–––––––––––+–––––––––––––––+
Diese Implementierung ist so elegant. Vielen Dank für Ihre schnelle Antwort! – Wuaner
Ich habe meine Frage aktualisiert. – Wuaner
@Wuaner bitte erstellen Sie eine neue Frage, aktualisieren Sie nicht mehr als 1 Jahr nach, danke. –