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); }