コツコツ学習ブログ

プログラマのweb上のメモ的なもの

コレクション(List,Set,Map)

コレクションとは

様々なデータ構造に対応した「データをまとめて格納するための」 入れ物クラスのこと

List

package collection;

//ArrayListを使って見よう

//import文を記述
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        //ArrayListの型にIntのラッパークラスIntegerを指定
        ArrayList<Integer> points = new ArrayList<Integer>();
        //自動的にIntegerに変換・格納される
        points.add(10);
        points.add(80);
        points.add(75);
        //ArrayListは拡張for文も利用可能
        for (int i : points) {
            System.out.println(i);
        }
    }
}

Set

  • hashSet
  • LinkedHashSet
  • Tree Set

  • Setの特性 複数の情報を重複なく格納する集合(セット)というデータ構造を 実現するためのもの

Map

  • HashMap
  • LinkedhashMap
  • TreeMap

  • Mapの特性 Mapとは、2つの情報をキーバリューのペアとして格納する データ構造。連想配列のようなもの

HashMapクラス

Mapインタフェースの実装の中でも特に多く利用される

  • HashMapのインスタンス化 Map<キーの型,値の型> マップ変数 = new HashMap<キーの型,値の型>();

  • Mapではキーの重複は許されない

package collection;

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        //HashMapのインスタンス化
        Map<String, Integer> prefs = new java.util.HashMap<String,Integer>();
        //ペアで値を格納
        prefs.put("京都府",255 );
        prefs.put("東京都",1261 );
        prefs.put("熊本空港",181 );
        //キーを指定し値を取得
        int tokyo = prefs.get("東京都");
        System.out.println("東京:" + tokyo);
        //要素の削除
        prefs.remove("京都府");
        //値の上書き
        prefs.put("熊本空港", 182);
        int kumamoto = prefs.get("熊本空港");
        System.out.println("熊本空港:" + kumamoto);

        }
    }

Mapに格納された情報を1つずつ取り出すサンプル

package collection;

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        //HashMapのインスタンス化
        Map<String, Integer> prefs = new java.util.HashMap<String,Integer>();
        //ペアで値を格納
        prefs.put("京都府",255 );
        prefs.put("東京都",1261 );
        prefs.put("熊本空港",181 );
        //キーを指定し値を取得
        int tokyo = prefs.get("東京都");
        System.out.println("東京:" + tokyo);
        //要素の削除
        prefs.remove("京都府");
        //値の上書き
        prefs.put("熊本空港", 182);
        //mapに格納された情報を1つずつ取り出す
        for (String key :  prefs.keySet()) {
             int value = prefs.get(key);
            System.out.println(key + "の人口は" + value);
        }
    }
}
  • 文法 for (キーの型 key : マップ変数.keySet()) { 値の型 value = マップ変数.get(key); //keyとvalueを用いて何らかの処理を行う }