【Java】コレクション

List

要素を要素番号で管理する
ArrayList
 参照が速く、一般的にはこっちを使う
〇LinkedList
 挿入や削除が速い

//宣言
List<String> list = new ArrayList<String>();  //List型になる
List<String> list = new ArrayList<>();  //省略形
var list = new ArrayList<String>();  //ArrayList型になる

//値を追加
list.add("AAA");  //最後に追加
list.add(0,"BBB");  //追加場所を指定(すでに存在する場合は割り込み)

//要素を取得
list.get(0);

//値を変更
list.set(0,"bbb");

//削除(場所を指定)
list.remove(0);

//削除(値を指定)※java1.8以降
list.removeIf(n -> n.equals("AAA"));

//全削除
list.clear();

//要素数取得
list.size();

//要素の存在確認
list.contains("AAA");

//要素番号を取得
list.indexOf("AAA");

//重複を削除
list = (ArrayList<String>) list.stream().distinct().collect(Collectors.toList());

//ソート
Collections.sort(list);

//逆順
Collections.reverse(list);

//最大を取得
Collections.max(list);

//最小を取得
Collections.min(list);

//指定した値を置き換える
Collections.replaceAll(list,"置換前","置換後");

//すべての値を置き換える
Collections.fill(list,"すべて置換");

//順番をシャッフルする
Collections.shuffle(list);

//リスト→配列
String[] s = new String[list.size()];
list.toArray(s);

//配列→リスト
String[] str = { "A", "B"};
Collections.addAll(list, str);  //追加されるイメージ(元の値消えない)

//全取得
for (String value : list) {
    System.out.println(value);
}
// nullチェック
if (strList == null || strList.size() == 0) {
  return true;
}
// nullチェック(Apache Commons Collectionsを使用)
if (CollectionUtils.isEmpty(strList)) {
  return true;
}

// 件数確認
if (strList.size() > 1) {
  return true;
}
// 件数確認(Apache Commons Collectionsを使用)
if (CollectionUtils.size(strList) > 1) {
  return true;
}

Set

同じ要素を複数登録できないように管理する
〇HashSet
 順番がバラバラ、null可
〇TreeSet
 順番が要素の昇順で自動ソートされる、null不可
〇LinkedHashSet
 順番が追加順、null可

//宣言
Set<String> set = new HashSet<String>();  //set型になる
Set<String> set = new HashSet<>();  //省略形
var set = new HashSet<String>();  //varを使用、HashSet型になる

//値を追加
set.add("AAA");

//削除
set.remove("AAA");

//全削除
set.clear();

//要素数取得
set.size();

//要素の存在確認
set.contains("AAA");

//空か確認
set.isEmpty();

//最大を取得
Collections.max(set);

//最小を取得
Collections.min(set);

//リスト→配列
String[] s = new String[set.size()];
set.toArray(s);

//配列→リスト  
String[] str = { "A", "B"};
Collections.addAll(set, str);  //追加されるイメージ(元の値消えない)

//全取得
for (String value : set) {
    System.out.println(value);
}

Map

要素をキーで管理する
〇HashMap
 順番がバラバラ、null可
〇TreeMap
 順番がキーの昇順で自動ソートされる、null不可
〇LinkedHashMap
 順番が追加順、null可

//宣言
Map<String,Integer> map = new HashMap<String,Integer>();  //map型になる
Map<String,Integer> map = new HashMap<>();  //省略形
var map = new HashMap<String,Integer>();  //HashMap型になる

//値を追加
map.put("key1", 100);
map.put("key2", 100);

//要素を取得
map.get("key1");

//値を変更
map.replace("key1", 200);

//削除
map.remove("key1");

//全削除
map.clear();

//要素数取得
map.size();

//キーの存在確認
map.containsKey("key1");

//値の存在確認
map.containsValue(100);

//空か確認
map.isEmpty();

//最大を取得
Collections.max(map.keySet());  //キー
Collections.max(map.values());  //値

//最小を取得
Collections.min(map.keySet());  //キー
Collections.min(map.values());  //値

//キーをすべて取得
for (String str : map.keySet()) {
	System.out.println(str);
}

//値をすべて取得
for (Integer val : map.values()) {
	System.out.println(val);
}