Collectionsユーティリティ
java.util.Collectionsの便利なユーティリティを使います。sort、reverse、shuffle、min/max、frequency、addAll、変更不可ビューを扱います。
「Collectionsユーティリティ」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
概要
Collectionsヘルパークラスには、作業を効率化する小さなツールが用意されています。sort、reverse、shuffle、min/max、frequency、addAll、unmodifiableListなどです。これらはjava.util.Collectionsにあります。
インプレース操作
インプレースメソッド(sort、reverse、shuffle)は、指定されたListを変更します。Set の場合は、並べ替える前に List にコピーします。変更を加える場合は、読みやすさのため変更前後を出力しましょう。
コード:sort/reverse/shuffle
sortは自然順序を使い、reverseはリストの順序を反転し、shuffleは順序をランダムにします。いずれも同じ List インスタンスを変更します。
public class Main {
public static void main(String[] args) {
java.util.List<String> names = new java.util.ArrayList<>();
names.add("Bob"); names.add("Ada"); names.add("Cyd");
System.out.println("orig=" + names);
java.util.Collections.sort(names); // natural order (A–Z)
System.out.println("sorted=" + names);
java.util.Collections.reverse(names); // reverse order
System.out.println("reversed=" + names);
java.util.Collections.shuffle(names); // random order
System.out.println("shuffled=" + names);
}
}
最小値/最大値と出現回数
minとmaxは自然順序に基づいて要素を選びます。frequency(list, x)は、要素が何回現れるかを数えます。小規模な統計やテストに便利です。
コード:min/max/frequency
これらのユーティリティは List を変更せずに値を返します。上の数値は Integer の自然順序を使って計算されています。
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(7); nums.add(3); nums.add(7); nums.add(1);
int min = java.util.Collections.min(nums);
int max = java.util.Collections.max(nums);
int freq7 = java.util.Collections.frequency(nums, 7);
System.out.println("min=" + min + ", max=" + max + ", count(7)=" + freq7);
}
}
コード:addAllとunmodifiableList
addAllはリストの作成に便利です。unmodifiableListは読み取り専用ビューを作成し、意図しない変更を防ぎます。
public class Main {
public static void main(String[] args) {
java.util.List<String> a = new java.util.ArrayList<>();
java.util.Collections.addAll(a, "red", "green");
java.util.List<String> b = new java.util.ArrayList<>();
java.util.Collections.addAll(b, "blue", "green");
// merge b into a
a.addAll(b);
System.out.println("merged=" + a); // [red, green, blue, green]
// create a read-only view
java.util.List<String> readOnly = java.util.Collections.unmodifiableList(a);
System.out.println("readonly size=" + readOnly.size());
// readOnly.add("x"); // would throw UnsupportedOperationException if uncommented
}
}
Collectionsユーティリティのチェック
クイックチェック:Collections.sort(list)はデフォルトで何を行いますか?
まとめ
まとめ:Collectionsを使うと手軽に便利な処理ができます。順序の操作には sort/reverse/shuffle、小規模な統計には min/max/frequency、結合には addAll、読み取り専用ビューには unmodifiableList を使います。
よくある質問
「Collectionsユーティリティ」レッスンは無料ですか?
はい。「Collectionsユーティリティ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「Collectionsユーティリティ」で何を学びますか?
java.util.Collectionsの便利なユーティリティを使います。sort、reverse、shuffle、min/max、frequency、addAll、変更不可ビューを扱います。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「Collectionsユーティリティ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ListとSetの概要
- Iteratorと拡張for
- Collectionsユーティリティ