Java言語でのコレクションクラスの使い方を詳しく解説

王林
リリース: 2023-06-09 22:48:06
オリジナル
1384 人が閲覧しました

Java 言語は、世界で最も広く使用されているプログラミング言語の 1 つであり、コレクション クラスは Java 言語の非常に重要な部分です。 Java 言語では、コレクション クラスは、複数のオブジェクトを格納および操作できる一連のデータ型のコンテナです。これらのオブジェクトには、基本型、カスタム オブジェクト、またはその他のコレクション オブジェクトが含まれます。 Java コレクション クラスは、その効率性、柔軟性、使いやすさによりプログラマに広く好まれています。この記事ではJavaのコレクションクラスの使い方を詳しく紹介します。

1. Java コレクション クラスの分類

Java コレクション フレームワークには 2 種類のコレクション クラスが含まれています: 1 つは、通常、オブジェクトを渡す ArrayList などのパッケージング クラスを通じて提供されるオブジェクト コンテナです。 Java の基本データ型をラップし、通常の配列にはない機能を提供するもの、もう 1 つは、キー オブジェクトを値オブジェクトにマップするために使用される、HashMap、TreeMap などの Map ベースのデータ構造です。 Java コレクション クラスは、List、Map、Set、Queue の 4 つのカテゴリに分類できます。このうち、List は順序付きコレクション、Map はキーと値のペアの格納関係のコレクション、Set は重複を許さない順序なしの要素のコレクション、Queue は FIFO に従って管理される要素のコレクションです (最初に、先出し)原則。以下では、4種類のコレクションそれぞれの特徴と使い方を紹介します。

2. リスト コレクション

リスト コレクションは順序付けられたコレクション (つまり、繰り返し可能) であり、一連の要素を格納し、それらを特定の順序で並べ替えることができます。 List インターフェイスには、ArrayList、LinkedList、Vector という 3 つの一般的に使用される実装があります。

  1. ArrayList

ArrayList は、配列のサイズを動的に増減できる動的配列です。内部実装では配列構造を使用するため、クエリ操作は高速ですが、挿入および削除操作は遅くなります。 ArrayList の使用法は配列の使用法と似ていますが、動的に拡大および縮小できる柔軟性があります。

  1. LinkedList

LinkedList は二重リンク リストであり、その要素はいつでも挿入および削除でき、同時操作をより適切にサポートできます。 LinkedList のクエリ操作は遅くなりますが、挿入と削除の操作は高速です。 LinkedList はキューまたはスタックとして使用できます。

  1. Vector

Vector は ArrayList のスレッドセーフ版ですが、ArrayList に比べて実行効率が遅いため、実際の開発ではあまり使われません。 Vector には ArrayList と同様のメソッドが多数ありますが、スレッドセーフです。

3. マップ コレクション

マップ コレクションは、キーと値のペアのストレージ関係コレクションであり、クエリ速度が非常に速く、要素を追加および削除する機能を備えています。 Map コレクションは、そのキーが一意であることを保証できますが、値は繰り返すことができます。 Map インターフェイスには、HashMap、TreeMap、LinkedHashMap という 3 つの一般的に使用される実装があります。

  1. HashMap

HashMap はハッシュ テーブルに基づいた実装であり、挿入操作とクエリ操作を一定時間で実行できますが、要素の順序は不確かです。 HashMap のキーまたは値は null オブジェクトにすることができます。

  1. TreeMap

TreeMap は赤黒ツリーの実装に基づいており、要素を並べ替えることができます。挿入およびクエリ操作の時間計算量は O(log N) です。 。 TreeMap ではキーが比較可能である必要があるため、Comparable または Comparator インターフェイスを実装する必要があります。

  1. LinkedHashMap

LinkedHashMap は、要素の挿入順序を維持しながら、要素アクセスでのソフト参照または弱参照の使用方法を認識できる HashMap のバリアントです。 order. 削除された要素への参照。 LinkedHashMap の実行効率は HashMap に比べて若干低くなります。

4. セット コレクション

セット コレクションは、要素の重複を許可しない順序付けされていないコレクションで、単一の属性を持つオブジェクトを処理するために使用できます。 Set インターフェイスには、HashSet と TreeSet という 2 つの一般的に使用される実装があります。

  1. HashSet

HashSet は HashMap に基づいて実装されており、高速な要素の挿入とクエリ操作を提供できますが、要素の重複は許可されません。 HashSet に順序があるかどうかは不明であるため、要素の順序は必要ありません。

  1. TreeSet

TreeSet は赤黒ツリーに基づいて実装されており、要素に対して順序付けられた挿入およびクエリ操作を実行できます。 TreeSet では、並べ替えの目的を達成するために、要素が Comparable または Comparator インターフェイスを実装する必要があります。

5. キュー コレクション

キュー コレクションは、FIFO (先入れ先出し) 原則に従って管理される要素のコレクションであり、Queue と Deque の 2 つのインターフェイスが含まれます。 Deque は Queue をベースに拡張された両端キューであり、キューの先頭と末尾に要素を挿入したり削除したりすることができます。 Queue と Deque にはどちらも、LinkedList と ArrayDeque という 2 つの一般的に使用される実装があります。

  1. LinkedList

LinkedList は、List コレクションとして、または Queue および Deque として使用できます。 Queue と Deque の場合、LinkedList はリンク リストに基づく実装です。

  1. ArrayDeque

ArrayDeque は、末尾の要素を追加または削除したり、先頭から要素を取得したりできる配列ベースの実装です。

6. コレクション クラスの使用例

Java プログラマーは、開発効率とプログラムのパフォーマンスを向上させるために Java コレクション クラスを上手に使用する必要があります。以下では、ArrayList を例として、Java コレクション クラスの使用方法を示します。

import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { // 创建ArrayList对象 ArrayList list = new ArrayList(); // 添加元素 list.add(1); list.add(2); list.add(3); list.add(1); System.out.println(list); // 删除元素 list.remove(0); System.out.println(list); // 插入元素 list.add(0, 4); System.out.println(list); // 获取元素 int element = list.get(2); System.out.println("Element at index 2: " + element); // 修改元素 list.set(2, 5); System.out.println(list); // 清空列表 list.clear(); System.out.println(list); } }
ログイン後にコピー

上記のコードは、ArrayList オブジェクトの作成、要素の追加、要素の削除、要素の挿入、要素の取得、要素の変更、リストのクリアの方法を示しています。実際の開発では、プログラマは Java コレクション クラスを使用して、より複雑なビジネス ロジックを実装することもできます。

7.概要

この記事では、Java コレクション クラスの使用方法について詳しく説明します。 Java コレクション クラスは Java プログラマーが習得しておくべき知識の 1 つであり、実際の開発においては、より効率的で柔軟で使いやすいデータの保存と操作方法を提供します。どのコレクション クラスを使用するかを選択するときは、プログラムのパフォーマンスと保守性を確保するために、実際の状況に基づいて選択する必要があります。この記事が、皆さんが Java 言語コレクション クラスの使い方をマスターするのに役立つことを願っています。

以上がJava言語でのコレクションクラスの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!