Collectionsによるソートと検索
Collections.sort、Collections.binarySearch、Comparatorを使って、カスタムソートと検索を行います。
「Collectionsによるソートと検索」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
導入
並べ替えはデータを整理して検索を高速化します。Java のCollectionsには、組み込みのsortとbinarySearchユーティリティがあります。
並べ替えの基礎
Collections.sortは List をインプレースで並べ替えます。デフォルトでは自然順序を使います(例:数値は昇順、文字列は A–Z 順)。
コード:自然順序での並べ替え
Integer の自然順序は昇順です。sort()は同じ List を変更します。
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(5); nums.add(1); nums.add(3);
java.util.Collections.sort(nums);
System.out.println(nums); // [1,3,5]
}
}
カスタム並べ替え
Comparatorを渡すと、逆順、長さ順など、任意の順序や独自のルールで並べ替えられます。
コード:長さで並べ替え
この Comparator は文字列を長さで並べ替えます。
public class Main {
public static void main(String[] args) {
java.util.List<String> words = new java.util.ArrayList<>();
words.add("Java"); words.add("C"); words.add("Python");
java.util.Collections.sort(words, (a,b) -> a.length() - b.length());
System.out.println(words); // [C, Java, Python]
}
}
コード:binarySearch
binarySearchは要素の位置をすばやく検索しますが、リストがあらかじめ同じ規則で並べ替えられていなければなりません。
public class Main {
public static void main(String[] args) {
java.util.List<Integer> nums = new java.util.ArrayList<>();
nums.add(1); nums.add(3); nums.add(5); nums.add(7);
int idx = java.util.Collections.binarySearch(nums, 5);
System.out.println("Index of 5 = " + idx);
}
}
binarySearchのチェック
クイックチェック:Collections.binarySearch を使う前に、何が満たされていなければなりませんか?
まとめ
まとめ:並べ替えには sort()、高速な検索には binarySearch()を使います。カスタム Comparator によって、柔軟な並べ替えルールを定義できます。
よくある質問
「Collectionsによるソートと検索」レッスンは無料ですか?
はい。「Collectionsによるソートと検索」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「Collectionsによるソートと検索」で何を学びますか?
Collections.sort、Collections.binarySearch、Comparatorを使って、カスタムソートと検索を行います。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「Collectionsによるソートと検索」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Mapと頻度カウント
- ComparableとComparator
- Collectionsによるソートと検索