Java Collection - user000422/0 GitHub Wiki

コレクション ・・・ 複数の要素の集まり
コレクションフレームワーク ・・・ コレクションを扱う機能

// 後でこれらは下部にうまく入れ直すこと


// コレクションフレームワーク ネスト
Map<String, List<String>> ○○○ = new HashMap<>(); // Map の中に List

List( java.util.List )

複数の要素の順番を保持する( 配列の代わりとしても使用 )
配列と違い後から要素数( 個数 )を変更することが可能

ArrayList … 任意の要素へのアクセスが得意
LinkedList … 要素の途中追加や削除が得意

インスタンス化
右側ダイアモンド内の型は省略可

// ArrayList(引数, 戻り値, ローカル変数には極力 List 型を使う)
List<String> sample = new ArrayList<>(); // String型
List<Integer> sample2 = new ArrayList<>(); // int型

// インスタンス化時に値を設定
// 引数に配列(配列変数)が使われることが多い
String[] sample2 = {"いぬ", "ねこ"};
List<String> list3 = new ArrayList<String>(Arrays.asList(sample2));

// メソッド
arrays.add("sample"); // 末尾に追加
arrays.add(1, "sample"); // 位置指定追加(第1引数は配列インデックス番号)
arrays.set(0, "sample"); // 値の上書き(第1引数は配列インデックス番号)
arrays.get(0); // 要素取得(引数は配列インデックス番号)
arrays.size(); // 要素数
arrays.isEmpty(); // 要素数が0であるか判定
arrays.contains("abc"); // 引数の値が含まれているか判定
arrays.indexOf(); // 指定要素が何番目にあるか検索
arrays.clear(); // 要素を全て削除
arrays.remove(0); // 要素を削除(引数は配列インデックス番号)( 後続の要素は1つ繰り上がる, 複数ある場合は先頭のみ )

// 考察中
arrays.addAll(他リスト名); // 値を全て追加
arrays.addAll(Arrays.asList(5, 6, 7)); // 値を全て追加(他Listに依存せず直接追加する値を入力)

for-each(拡張for文)

for(String s : arrays) {
  System.out.println(s);
}

if

if(リスト名.size() >= 1) { /* … */ } // リストの要素数を比較

if(sampleList.isEmpty()) { /* … */ } // リストが空の場合
if(!sampleList.isEmpty()) { /* … */ } // リストが空ではない場合

if(リスト名.contains("a")) // リストに指定要素が存在するか

例文

private List<Integer> ○○○; // フィールド宣言
○○○ = new ArrayList<Integer>();
for(int i=1 ; i<=5 ; i++){
	○○○.add(i);
}

--------------

Map( java.util.Map )

キーに対してキーに紐づく値を保持する
Listのようなインデックスの代わりにキーで要素を識別する
キーの重複は禁止
HashMap … 順序の概念はない
TreeMap … 順序は自然順序(String … 辞書順)
LinkedHashMap … 順序は格納順

// インスタンス生成
Map<String, String> map = new HashMap<String, String>(); // HashMap インスタンス化

// メソッド
map.put(キー, ); // 格納(重複するキーが存在してたら上書き)
map.get(キー); // キーに対応する値を取得(なければ null)
map.size(); // 格納されているペア数を数える
map.isEmpty(); // 要素数が0であるか判定
map.containsKey("key1"); // 引数で指定されたキーが存在するか判定
map.containsValue(); // 引数で指定された値が存在するか判定
map.clear(); // 要素を全て削除
map.remove(キー); // 指定要素を削除
map.keySet(); // 格納されているキーの一覧を返す

// メソッド keySet … mapに格納されているキーをセットで取得
Set<String> keyset = map.keySet();

for 拡張文(Map の終わりまでループ)
 for( Map.Entry<キー, 要素の型> 変数名 : 処理対象Map名.entrySet() ){ ・・・ }
for 拡張文処理出力
 System.out.println(for拡張文変数名.getKey());

Set

要素(格納される値)の重複禁止
HashSet … 順序の概念はない
TreeSer … 自然順序(String … 辞書順)

// インスタンス生成
Set<String> hs = new HashSet<>(); // String型
Set<String> ts = new TreeSet<>(); // String型

// メソッド
hs.add("red"); // 要素を追加(重複した要素を追加しようとしても無視される)
hs.size(); // 格納されている要素数を返す
hs.isEmpty(); // 要素数が0であるか判定
hs.contains("sample"); // 値が含まれているか判定
hs.clear(); // 要素を全て削除
hs.remove(); // 指定要素を削除

Collections(java.util.Collections)

コレクションを活用するためのユーティリティクラス
// sort 昇順に並び替える
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
Collections.sort(list);

// 

⚠️ **GitHub.com Fallback** ⚠️