In diesem Folgebeitrag konzentrieren wir uns ausschließlich auf Generika in Sammlungen, das Konzept der Typsicherheit in Java-Sammlungen und darauf, wie Generika Ihren Code erstellen flexibler und robuster. Darüber hinaus untersuchen wir, wie das Sortieren mit generischen Sammlungen funktioniert, und stellen einige erweiterte Hilfsmethoden vor, die sich als nützlich erweisen.
—
—
Generika in Java können Sie eine Klasse, Schnittstelle oder Methode schreiben, die mit jedem Datentyp funktioniert. Durch die Verwendung von Generika mit Sammlungen stellen Sie die Typsicherheit zur Kompilierungszeit sicher. Dies bedeutet, dass Sie potenzielle ClassCastException-Fehler vermeiden und eine explizite Umwandlung überflüssig machen können.
Zum Beispiel:
List<String> strings = new ArrayList<>(); strings.add("Hello"); // Adding a non-String value will now cause a compile-time error.
Generika stellen sicher, dass nur der angegebene Datentyp in der Sammlung gespeichert werden kann, wodurch Laufzeitprobleme vermieden werden und der Code besser lesbar und wartbar wird.
—
Generika in Listen stellen sicher, dass Sie nur Objekte des angegebenen Typs speichern können. Beispiel: List
import java.util.ArrayList; import java.util.List; public class GenericListExample { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); // The following line would cause a compile-time error: // names.add(123); // Error: cannot add Integer to List<String> for (String name : names) { System.out.println(name); } } }
—
Sets mit Generika funktionieren ähnlich wie Listen und stellen sicher, dass alle Elemente von einem bestimmten Typ sind.
import java.util.HashSet; import java.util.Set; public class GenericSetExample { public static void main(String[] args) { Set<Integer> numbers = new HashSet<>(); numbers.add(10); numbers.add(20); numbers.add(30); // Compile-time error if a non-Integer is added: // numbers.add("forty"); // Error for (Integer num : numbers) { System.out.println(num); } } }
—
Maps unterstützen als Schlüssel-Wert-Paare Generika sowohl für den Schlüssel als auch für den Wert. Beispiel: Map
import java.util.HashMap; import java.util.Map; public class GenericMapExample { public static void main(String[] args) { Map<String, Integer> phoneBook = new HashMap<>(); phoneBook.put("Alice", 12345); phoneBook.put("Bob", 67890); // The following would cause a compile-time error: // phoneBook.put(123, "Charlie"); // Error for (Map.Entry<String, Integer> entry : phoneBook.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } }
—
Das Sortieren allgemeiner Sammlungen ist unkompliziert und erfolgt mit Collections.sort() für Listen und Comparable oder Comparator für benutzerdefinierte Sortierung.
List<String> strings = new ArrayList<>(); strings.add("Hello"); // Adding a non-String value will now cause a compile-time error.
Für die benutzerdefinierte Sortierung können Sie die Comparator-Schnittstelle implementieren.
—
Die Dienstprogrammklasse „Collections“ unterstützt auch Vorgänge wie Binärsuche, Shuffle, Reverse und Frequenzzählung. Diese Vorgänge können für eine leistungsfähigere Datenbearbeitung auf generische Sammlungen angewendet werden.
import java.util.ArrayList; import java.util.List; public class GenericListExample { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); // The following line would cause a compile-time error: // names.add(123); // Error: cannot add Integer to List<String> for (String name : names) { System.out.println(name); } } }
—
import java.util.HashSet; import java.util.Set; public class GenericSetExample { public static void main(String[] args) { Set<Integer> numbers = new HashSet<>(); numbers.add(10); numbers.add(20); numbers.add(30); // Compile-time error if a non-Integer is added: // numbers.add("forty"); // Error for (Integer num : numbers) { System.out.println(num); } } }
—
Implementieren Sie eine einfache Stack-Klasse mithilfe von Generika. Der Stapel sollte das Schieben von Elementen, das Platzieren von Elementen und die Überprüfung, ob er leer ist, unterstützen.
Erstellen Sie eine Liste benutzerdefinierter Objekte, z. B. „Person“, und sortieren Sie sie nach einem benutzerdefinierten Feld wie Alter oder Name.
—
In diesem Beitrag haben wir untersucht, wie man Generika in Sammlungen für Typsicherheit, Flexibilität und Benutzerfreundlichkeit verwendet. Wir haben auch Sortierung und erweiterte Hilfsmethoden besprochen, die die Arbeit mit Sammlungen effizienter machen. Durch die Beherrschung von Generika können Sie robusteren, fehlerfreien Code schreiben, der zudem in hohem Maße wiederverwendbar ist.
—
Das obige ist der detaillierte Inhalt vonTeilegenerika in Sammlungen, Sortierungen und Hilfsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!