在這篇後續文章中,我們將完全關注集合中的泛型、Java 集合中類型安全的概念,以及泛型如何構建代碼更加靈活和堅固。此外,我們將探索排序如何與通用集合一起使用以及一些派上用場的高級實用方法。
—
—
泛型 可讓您編寫適用於任何資料類型的類別、介面或方法。透過將泛型與集合結合使用,可以確保編譯時的類型安全。這意味著您可以避免潛在的 ClassCastException 錯誤並消除明確轉換的需要。
例如:
List<String> strings = new ArrayList<>(); strings.add("Hello"); // Adding a non-String value will now cause a compile-time error.
泛型確保只有指定的資料類型可以儲存在集合中,防止執行時間問題並使程式碼更具可讀性和可維護性。
—
清單中的泛型可確保您只能儲存指定類型的物件。例如,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); } } }
—
具有泛型的集合的工作方式與清單類似,確保所有元素都屬於特定類型。
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); } } }
—
映射是鍵值對,支援鍵和值的泛型。例如,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()); } } }
—
將通用集合進行排序非常簡單,可以使用 Collections.sort() 進行清單排序,使用 Comparable 或 Comparator 進行自訂排序。
List<String> strings = new ArrayList<>(); strings.add("Hello"); // Adding a non-String value will now cause a compile-time error.
對於自訂排序,您可以實作 Comparator 介面。
—
集合實用程式類別也支援二分搜尋、隨機播放、反向和頻率計數等操作。這些操作可以應用於通用集合以進行更強大的資料操作。
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); } } }
—
使用泛型實作一個簡單的堆疊類別。堆疊應該支援推送元素、彈出元素以及檢查是否為空。
建立自訂物件列表,例如人員,並根據年齡或姓名等自訂欄位對其進行排序。
—
在這篇文章中,我們探討如何使用集合中的泛型來實現類型安全、靈活性和易用性。我們也討論了排序和進階實用方法,使集合的處理更有效率。透過掌握泛型,您可以編寫更健壯、無錯誤且高度可重複使用的程式碼。
—
以上是集合、排序和實用方法中的部分泛型的詳細內容。更多資訊請關注PHP中文網其他相關文章!