English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden wir anhand von Beispielen die verschiedenen Algorithmen des Java Collection Frameworks lernen.
Der Java Collection Framework bietet verschiedene Algorithmen, die zur Verarbeitung der in Datenstrukturen gespeicherten Elemente verwendet werden können.
Algorithmen in Java sind statische Methoden und können zur Ausführung verschiedener Operationen auf Sammlungen verwendet werden.
Da Algorithmen für verschiedene Sammlungen verwendet werden können, werden sie auch so genanntAllgemeine Algorithmen.
Lassen Sie uns die Implementierung der verschiedenen Methoden im Sammlungsrahmen betrachten.
Die von der Sammlungsrahmen bereitgestellten sort() -Methoden dienen zur Sortierung von Elementen. Zum Beispiel
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args) { //Erstellen Sie eine Arrayliste ArrayList<Integer> numbers = new ArrayList<>(); //Fügen Sie Elemente hinzu numbers.add( 4); numbers.add( 2); numbers.add( 3); System.out.println("Unsortierte ArrayList: " + numbers); // Verwenden Sie die sort() -Methode Collections.sort(numbers); System.out.println("Sortierte ArrayList: " + numbers); } }
Ausgaberesultat
Unsortierte ArrayList: [4, 2, 3] Sortierte ArrayList: [2, 3, 4]
Hier erfolgt die Sortierung in natürlicher Ordnung (aufsteigend). Aber wir können die Sortierreihenfolge der sort() -Methode mit dem Comparator -Interface anpassen.
Für weitere Informationen besuchen Sie bitteJava Sorting.
Der shuffle() -Methoden der Java Collections-Frameworks wird verwendet, um jede beliebige Reihenfolge in einer Datenstruktur zu durcheinanderwerfen. Sein Effekt ist genau umgekehrt zu Sortieren. Zum Beispiel
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args) { //Erstellen Sie eine Arrayliste ArrayList<Integer> numbers = new ArrayList<>(); //Fügen Sie Elemente hinzu numbers.add( 1); numbers.add( 2); numbers.add( 3); System.out.println("Sortierte ArrayList: " + numbers); //Verwenden Sie die shuffle() -Methode Collections.shuffle(numbers); System.out.println("Verwenden Sie ArrayList mit shuffle: " + numbers); } }
Ausgaberesultat
Sortierte ArrayList: [1, 2, 3] Verwenden Sie ArrayList mit shuffle: [2, 1, 3]
Wenn wir das Programm ausführen, gibt die shuffle() -Methode zufällige Ausgaben zurück.
Die Shuffle-Algorithmen werden hauptsächlich in Spielen verwendet, die zufällige Ausgaben benötigen.
In Java bietet die Sammlungsrahmen verschiedene Methoden zur Verarbeitung von Daten an.
reverse() - Umkehren Sie die Reihenfolge der Elemente
fill() - Ersetzen Sie jedes Element in der Sammlung mit einem angegebenen Wert
copy() - Erstellen Sie eine Kopie der Elemente von einer angegebenen Quelle bis zum Ziel
swap() - Tauschen Sie die Positionen zweier Elemente in der Sammlung aus
addAll() - Fügen Sie alle Elemente der Sammlung zu einer anderen Sammlung hinzu
Zum Beispiel,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //Eine ArrayList erstellen ArrayList<Integer> numbers = new ArrayList<>(); numbers.add( 1); numbers.add( 2); System.out.println("ArrayList1: \ + numbers); // Verwenden Sie reverse() Collections.reverse(numbers); System.out.println("Umkehren von ArrayList1: \ + numbers); // Verwenden Sie swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 Verwenden Sie swap(): " + numbers); ArrayList<Integer> newNumbers = new ArrayList<>(); // Verwenden Sie addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 Verwenden Sie addAll(): \ + newNumbers); // Verwenden Sie fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 Verwenden Sie fill(): \ + numbers); // Verwenden Sie copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 Verwenden Sie copy(): \ + newNumbers); } }
Ausgaberesultat
ArrayList1: [1, 2] Arraylist umkehren1: [2, 1] ArrayList1 Verwenden Sie swap(): [1, 2] ArrayList2 Verwenden Sie addALl(): [1, 2] ArrayList1 Verwenden Sie fill(): [0, 0] ArrayList2 Verwenden Sie copy(): [0, 0]
Achtung:Bei der Ausführung des copy()-Methods sollten die Größen der beiden Listen gleich sein.
Die binarySearch()-Methode der Java Collection Frameworks sucht nach einem bestimmten Element. Sie gibt die Position des Elements in der angegebenen Sammlung zurück. Zum Beispiel,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //Eine ArrayList erstellen ArrayList<Integer> numbers = new ArrayList<>(); numbers.add( 1); numbers.add( 2); numbers.add( 3); // Verwenden Sie binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("3der Position ist \ + pos); } }
Ausgaberesultat
3der Position ist 2
Achtung:Bevor die binarySearch()-Methode ausgeführt wird, sollte die Sammlung sortiert werden.
Für weitere Informationen besuchen Sie bitteJava Binärsuche.
frequency() - gibt die Anzahl der Elemente zurück, die in der Sammlung existieren
disjoint() - prüfen, ob zwei Mengen einige gemeinsame Elemente enthalten
Zum Beispiel,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //Eine ArrayList erstellen ArrayList<Integer> numbers = new ArrayList<>(); numbers.add( 1); numbers.add( 2); numbers.add( 3); numbers.add( 2); System.out.println("ArrayList1: \ + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Anzahl von 2: \ + count); ArrayList<Integer> newNumbers = new ArrayList<>(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: \ + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("zwei Listen sind nicht überschneidend? ", + value); } }
Ausgaberesultat
ArrayList1: [1, 2, 3, 2] Anzahl von 2: 2 ArrayList2: [5, 6] zwei Listen sind nicht überschneidend? true
Die min()- und max()-Methoden der Java Collection Frameworks dienen dazu, den kleinsten und größten Element zu finden. Zum Beispiel,
import java.util.Collections; import java.util.ArrayList; class Main { public static void main(String[] args) { //Eine ArrayList erstellen ArrayList<Integer> numbers = new ArrayList<>(); numbers.add( 1); numbers.add( 2); numbers.add( 3); // Verwenden Sie min() int min = Collections.min(numbers); System.out.println("Kleinstes Element: " + min); // Verwenden Sie max() int max = Collections.max(numbers); System.out.println("Größter Element: " + max); } }
Ausgaberesultat
Kleinstes Element: 1 Größter Element: 3