コレクション、ソート、およびユーティリティ メソッドの一部のジェネリックス
このフォローアップ投稿では、コレクション内のジェネリック、Java コレクションのタイプ セーフの概念、およびジェネリックによるコードの作成方法に焦点を当てます。より柔軟で堅牢です。さらに、汎用コレクションと便利ないくつかの高度なユーティリティ メソッドで並べ替えがどのように機能するかを調べます。
—
目次
- ジェネリックの概要
- リスト内のジェネリック
- セット内のジェネリック
- マップ内のジェネリック
- ジェネリックによる並べ替え
- 高度なユーティリティメソッド
- ジェネリックに関するよくある間違い
- 課題
- 結論
—
ジェネリック医薬品の紹介
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); } } }
- ワイルドカードの誤った使用: コレクションをメソッドに渡すときに、List> のようなワイルドカードを使用します。またはリスト Number> を拡張します。混乱を引き起こす可能性があります。いつ使用するかを理解していますか?そして extends または super キーワード。
—
課題
課題 1: 汎用スタック
ジェネリックを使用して単純なスタック クラスを実装します。スタックは要素のプッシュ、要素のポップ、空かどうかのチェックをサポートする必要があります。
課題 2: カスタム オブジェクトの並べ替え
人物などのカスタム オブジェクトのリストを作成し、年齢や名前などのカスタム フィールドに基づいて並べ替えます。
—
結論
この投稿では、型安全性、柔軟性、使いやすさのために コレクション内のジェネリック を使用する方法を検討しました。また、コレクションの操作をより効率的にするソートおよび高度なユーティリティ方法についても説明しました。ジェネリックスをマスターすると、再利用性が高く、より堅牢でエラーのないコードを作成できます。
—
以上がコレクション、ソート、およびユーティリティ メソッドの一部のジェネリックスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。
