JavaRush /Java Blog /Random-JA /コーヒーブレイク#196。Java 8 および Java 11 でファイルを正しく読み取る方法。 Java でリス...

コーヒーブレイク#196。Java 8 および Java 11 でファイルを正しく読み取る方法。 Java でリストを並べ替える方法、Java でリストを並べ替えるさまざまな方法

Random-JA グループに公開済み

Java 8 および Java 11 でファイルを適切に読み取る方法

出典: Medium このチュートリアルでは、Java 8 および Java 11 で大きなファイルを処理および読み取るときに役立ついくつかのヒントを学びます。Java コーヒーブレイク#196。 Java 8 および Java 11 でファイルを正しく読み取る方法。 Java でリストを並べ替える方法、Java でリストを並べ替えるさまざまな方法 - 1では、コンピュータのディスク上にあるファイルを読み取るのは非常に簡単です。Java 8 以降では、この にFilesクラスを使用できます。これはjava.nio.fileパッケージの一部であり、ファイルとディレクトリをより効率的に操作する方法を提供するために Java 7 で初めて導入されました。以下は、 Filesクラスを使用してJava 8 でファイルを読み取る 方法の例です。
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileReader {
    public static void main(String[] args) {
        try {
            Path path = Paths.get("file.txt");
            String content = Files.readString(path);
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
この例では、Files.readAllLines()メソッドを使用して、ファイルのすべての行を読み取り、List<String>ファイルに保存します。Paths.get()メソッドは、ファイルを表すPathオブジェクトを作成するために使用されます。Files.lines を使用することもできます。
import java.io.IOException;
import java.nio.file.Paths;
import java.nio.file.Files;

public class FileReader {
    public static void main(String[] args) {
        try {
            Files.lines(Paths.get("file.txt"))
                .forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Java 11 では、ファイルを読み取るためにreadString()メソッド を使用できます。このメソッドはファイル全体を文字列として読み取ります。使用方法の例を次に示します。
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileReader {
    public static void main(String[] args) {
        try {
            Path path = Paths.get("file.txt");
            String content = Files.readString(path);
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Java で大きなファイルを扱う場合は、次のガイドラインに留意することが重要です。
  1. バッファ付きリーダーを使用します。一度に 1 文字または 1 行を読み取るのではなく、一度に大きなデータの塊を読み取ることができます。
  2. 小さいバッファ サイズを使用する: バッファ付きリーダーを使用する場合、バッファ サイズを小さくするとメモリ使用量を減らすことができます。
  3. ストリーミング APIを使用します。ファイル全体をメモリにロードする代わりに、ストリーミング API を使用すると、ファイルを部分的に読み取ることができます。
  4. 特にファイルが大きい場合は、並列スレッドを使用してファイルを処理します。
  5. 読み取り後にファイルを閉じます。これにより、リソースが解放されます。
  6. ファイルの読み取り後にファイルを自動的に閉じるには、try-with-resourcesステートメントを使用します。これにより、ファイルの読み取り中に例外が発生した場合でも、ファイルは確実に閉じられます。
以下は、try-with-resourcesステートメントを使用してファイルを読み取る 例です。
import java.io.IOException;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.util.List;

public class FileReader {
    public static void main(String[] args) {
        try (BufferedReader reader = Files.newBufferedReader(Paths.get("file.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
この例では、BufferedReaderオブジェクトが try-with-resources ステートメント内に作成されます。これにより、例外が発生した場合でも、ブロックを終了するときにオブジェクトが自動的に閉じられます。したがって、Java で大きなファイルを読み取る場合は、バッファ付きリーダー、小さいバッファ サイズ、ストリーミング API、並列ストリームを使用し、読み取り後にファイルを閉じるのが最善です。さらに、try-with-resourcesステートメントを使用すると、例外が発生した場合にファイルを正しく閉じることができます。

Javaでリストをソートする方法。Java でのさまざまなリストのソート方法

出典: FreeCodeCamp この投稿では、Java のさまざまなリストの並べ替えメソッド ( Collections.sort()stream.sorted() 、およびList.sort() )について説明します。 コーヒーブレイク#196。 Java 8 および Java 11 でファイルを正しく読み取る方法。 Java でリストを並べ替える方法、Java でリストを並べ替えるさまざまな方法 - 2理解、検索、処理を容易にするために、データを特定の順序で整理する必要がある場合があります。このプロセスをソートと呼びます。並べ替えを使用すると、特定の順序だけでなく、数値、文字列、オブジェクトなどのデータ タイプごとなどの基準に従ってデータを整理することもできます。Java 言語には、たとえばCollectionsクラスなどにソート用の組み込みメソッドがあります。Java ソートは、ユーザーが製品のリストを表示する必要がある電子商取引アプリケーションでよく使用されます。価格、評価、ブランドなど、ユーザーが設定した要件に応じて、製品をさまざまな方法で並べ替えることができます。たとえば、ユーザーがすべての製品を価格の昇順で並べ替えて表示したい場合、アプリケーションは並べ替えアルゴリズムを使用して製品をその順序に並べることができます。こうすることで、ユーザーが製品を閲覧するときに、最初に最も安い製品を確認し、それに応じて購入を決定できるようになります。

Java で Collections.Sort() メソッドを使用する方法

Java でデータを並べ替える最も一般的な方法の 1 つは、Collections.sort()メソッドを使用することです。デフォルトでは、リストを昇順に並べ替えます。Collections.sort()メソッドを使用して整数のリストを並べ替える例を次に示します。
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<Integer>();
        numbers.add(3);
        numbers.add(1);
        numbers.add(4);
        numbers.add(2);

        Collections.sort(numbers);

        System.out.println("Sorted List: " + numbers);
    }
}
上記のコードは、整数のリストを作成し、それに 4 つの数値を追加し、リストを並べ替えて、並べ替えられたリストをコンソールに出力します。Java 標準ライブラリのクラスを使用して、java.util.Collectionsjava.util.Listjava.util.ArrayListなどの操作を実行します。出力は次のとおりです。
//ソートされたリストを出力: [1, 2, 3, 4]
Collections.sort()メソッド を使用してカスタム オブジェクトのリストを並べ替えることもできます。これを行うには、コンパレーターを作成し、それを引数としてCollections.sort()メソッドに渡す必要があります。コンパレーターは、 java.util.Comparatorインターフェースを実装するオブジェクトです。これには、 2 つのオブジェクトを比較し、それらの相対的な順序を示す整数を返す、呼び出し可能なメソッドCompare()が 1 つあります。次に、コンパレータを使用してカスタム オブジェクトのリストを並べ替える方法の例を示します。
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 25));
        people.add(new Person("Bob", 30));
        people.add(new Person("Charlie", 20));

        Collections.sort(people, new PersonComparator());

        System.out.println("Sorted List: " + people);
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return name + " (" + age + ")";
    }
}

class PersonComparator implements java.util.Comparator<Person> {
    @Override
    public int compare(Person a, Person b) {
        return a.getAge() - b.getAge();
    }
}
上に示したコードは、Personオブジェクトのリストを作成し、いくつかのPersonオブジェクトをリストに追加し、カスタム コンパレータ ( PersonComparator )を使用してリストを並べ替えて、並べ替えられたリストを出力します。Personクラスには、 nameage の2 つのフィールドと、これらのフィールドのゲッター メソッドがあります。PersonComparatorクラスはComparatorインターフェイスを実装し、比較メソッドをオーバーライドして、年齢 ( age ) でPersonオブジェクトを並べ替えます。このプログラムの出力は次のようになります。
//ソートされたリストを出力: [チャーリー (20)、アリス (25)、ボブ (30)]
Collections.sort() メソッドは、1 つ以上のフィールドで並べ替えるオブジェクトのコレクションがある場合に最適に使用されます。たとえば、Employeeオブジェクトのコレクションがあり、それらを姓で並べ替える場合は、Collections.sort()メソッドを使用して、 Employeeオブジェクトの姓を比較するカスタム コンパレータを渡すことができます。

Java で List.Sort() メソッドを使用する方法

このメソッドはリストを昇順に並べ替えます。仕組みは次のとおりです。
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
        numbers.sort(null);
        System.out.println(numbers); // prints [1, 2, 3, 4, 5]
    }
}
メインメソッド 内で、Arrays.asList は数値と呼ばれる整数のリストを作成します。次に、このコードは、デフォルトの並べ替えメソッドを使用してこの数値リストを並べ替えます。これは、並べ替えメソッドにnullが渡されるためです。最後に、並べ替えられたリストがSystem.out.printlnメソッドを使用してコンソールに出力されます。出力は[1, 2, 3, 4, 5]です。 List.sort() は、並べ替える必要がある要素のリストがある場合に便利です。たとえば、文字列のリストがあり、それらをアルファベット順に並べ替えたい場合は、List.sort ()メソッドを使用してこれを行うことができます。 List.sort()はListクラスのインスタンス メソッドで、自然な順序または指定されたIcomparer実装によって決定される順序で要素を並べ替えます。

Java での stream.sorted() メソッドの使用方法

Java 8 以降では、Stream API を使用してリストを並べ替えることができます。これは、ストリームの要素を並べ替えるために使用できるsortedメソッドを提供します。以下は、ストリームを使用して整数のリストを並べ替える方法の例です。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {

        List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
        List<Integer> sortedList = numbers.stream().sorted().collect(Collectors.toList());
        System.out.println(sortedList); // prints [1, 2, 3, 4, 5]

    }
}
ご覧のとおり、数値のリストはstream()メソッドを使用してストリームに変換されます。次に、 sorted()メソッドを呼び出して、ストリーム内の要素を並べ替えます。collect(Collectors.toList())メソッドは、並べ替えられた要素をリストに収集するために使用されます。結果は、並べ替えられた要素を含む新しいリストです。出力は[1, 2, 3, 4, 5]です。 stream.sorted() は、並べ替える必要がある要素のストリームがある場合に最適に使用されます。たとえば、整数のストリームがあり、それらを昇順に並べ替えたい場合は、この にstream.Sorted()メソッドを使用することをお勧めします。

結論

このチュートリアルでは、Java でリストを並べ替える方法として、 Collections.sort()メソッド、stream.sorted()メソッド、およびList.sort()メソッドがいくつかあることを学びました。これらの方法のどれを使用するのが最適かは、当面のタスクの特定の要件によって異なります。この記事が Java でリストを並べ替える方法に関する正しい情報を提供できたことを願っています。コーディングを楽しんでください!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION