JavaにおけるHashMapとArrayListの基本的な操作方法

Javaコレクションフレームワークの概要

Javaのコレクションフレームワークは主に以下の2つのカテゴリに分類されます:

Collectionインターフェース: 単一要素のコレクション
    Listインターフェース: 順序あり、重複可能なデータ
        → ArrayList, LinkedList, Vector
    Setインターフェース: 順序なし、重複不可のデータ
        → HashSet, TreeSet, LinkedHashSet

Mapインターフェース: キーと値のペアを格納
    → HashMap, LinkedHashMap, TreeMap, Hashtable

HashMapの基本操作

HashMapはMapインターフェースを実装したクラスで、キーと値のペアを格納します。内部的には配列とリンクリストの組み合わせで実装されています。

基本的なメソッドの使用例

HashMap<Integer, String> map = new HashMap<>();

// 要素の追加
map.put(101, "田中");
map.put(102, "佐藤");
map.put(103, "鈴木");
map.put(104, "鈴木"); // 値の重複は可能
map.put(105, "");     // 空文字も格納可能

// 要素の取得
String value = map.get(102);
System.out.println(value); // 佐藤

// 要素の更新
map.replace(103, "山田");

// 要素の削除
map.remove(101);

// サイズ確認
System.out.println(map.size());

// キーと値の存在確認
if (map.containsKey(104)) {
    System.out.println("キー104が存在します");
}
if (map.containsValue("鈴木")) {
    System.out.println("値「鈴木」が存在します");
}

HashMapの要素走査方法

// 方法1: EntrySetを使用した走査
for (Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println("キー: " + entry.getKey());
    System.out.println("値: " + entry.getValue());
}

// 方法2: キーセットを使用した走査
for (Integer key : map.keySet()) {
    System.out.println("キー: " + key);
    System.out.println("値: " + map.get(key));
}

// 値のみの走査
for (String val : map.values()) {
    System.out.println("値: " + val);
}

ArrayListの基本操作

ArrayListは動的にサイズが変更可能な配列で、AbstractListを継承しListインターフェースを実装しています。順序を保持し、重複要素を許可します。

基本的なメソッドの使用例

ArrayList<Integer> list = new ArrayList<>();

// 要素の追加
list.add(500);
list.add(200);
list.add(800);
list.add(800); // 重複可能

// 要素の取得
int lastElement = list.get(list.size() - 1);

// 要素の削除
list.remove(2); // インデックス2の要素を削除

// コレクションのソート
Collections.sort(list); // 昇順ソート

// サイズ確認
System.out.println("リストサイズ: " + list.size());

ArrayListの要素走査方法

// 拡張for文を使用した走査
for (int num : list) {
    System.out.println("要素: " + num);
}

// インデックスを使用した走査
for (int i = 0; i < list.size(); i++) {
    System.out.println("要素" + i + ": " + list.get(i));
}

タグ: Java HashMap arraylist コレクションフレームワーク データ構造

6月20日 00:21 投稿