このフォローアップ投稿では、コレクション内のジェネリック、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 インターフェイスを実装できます。
—
Collections ユーティリティ クラスは、二分探索、シャッフル、逆引き、および 頻度カウント などの操作もサポートします。これらの操作を汎用コレクションに適用して、より強力なデータ操作を行うことができます。
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 中国語 Web サイトの他の関連記事を参照してください。