JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 196. So lesen Sie Dateien in Java 8 und J...

Kaffeepause Nr. 196. So lesen Sie Dateien in Java 8 und Java 11 richtig. So sortieren Sie eine Liste in Java, verschiedene Methoden zum Sortieren von Listen in Java

Veröffentlicht in der Gruppe Random-DE

So lesen Sie Dateien in Java 8 und Java 11 richtig

Quelle: Medium In diesem Tutorial erfahren Sie einige Tipps, die beim Verarbeiten und Lesen großer Dateien in Java 8 und Java 11 nützlich sind. Das Kaffeepause Nr. 196.  So lesen Sie Dateien in Java 8 und Java 11 richtig. So sortieren Sie eine Liste in Java, verschiedene Methoden zum Sortieren von Listen in Java - 1 Lesen einer Datei, die sich auf der Festplatte Ihres Computers befindet, ist in Java recht einfach. In Java 8 und höher können Sie hierfür die Files- Klasse verwenden . Es ist Teil des Pakets java.nio.file , das erstmals in Java 7 eingeführt wurde, um eine effizientere Möglichkeit zum Arbeiten mit Dateien und Verzeichnissen zu bieten. Unten finden Sie ein Beispiel dafür, wie Sie die Files- Klasse zum Lesen einer Datei in Java 8 verwenden können.
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();
        }
    }
}
In diesem Beispiel wird die Methode Files.readAllLines() verwendet , um alle Zeilen einer Datei zu lesen und sie in einer List<String> -Datei zu speichern . Die Methode Paths.get() wird verwendet, um ein Path- Objekt zu erstellen , das die Datei darstellt. Sie können auch Files.lines verwenden :
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();
        }
    }
}
In Java 11 können Sie zum Lesen von Dateien die Methode readString() verwenden . Sie liest die gesamte Datei als Zeichenfolge. Hier ist ein Beispiel für die Verwendung.
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();
        }
    }
}
Bei der Arbeit mit großen Dateien in Java ist es wichtig, einige Richtlinien zu beachten:
  1. Verwenden Sie einen gepufferten Reader . Es ermöglicht Ihnen, große Datenblöcke gleichzeitig zu lesen, anstatt jeweils ein Zeichen oder eine Zeile zu lesen.
  2. Verwenden Sie eine kleinere Puffergröße : Bei Verwendung eines gepufferten Lesegeräts kann eine kleinere Puffergröße dazu beitragen, die Speichernutzung zu reduzieren.
  3. Verwenden Sie die Streaming-API . Anstatt die gesamte Datei in den Speicher zu laden, ermöglicht Ihnen die Streaming-API, die Datei in Teilen zu lesen.
  4. Verwenden Sie einen parallelen Thread, um die Datei zu verarbeiten , insbesondere wenn die Datei groß ist.
  5. Schließen Sie die Datei nach dem Lesen: Dies hilft, Ressourcen freizugeben.
  6. Verwenden Sie die try-with-resources -Anweisung , um eine Datei nach dem Lesen automatisch zu schließen. Dadurch wird sichergestellt, dass die Datei auch dann geschlossen wird, wenn beim Lesen eine Ausnahme auftritt.
Unten finden Sie ein Beispiel für die Verwendung der try-with-resources -Anweisung zum Lesen einer Datei.
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();
        }
    }
}
In diesem Beispiel wird ein BufferedReader- Objekt innerhalb einer try-with-resources-Anweisung erstellt, die sicherstellt, dass es beim Verlassen des Blocks automatisch geschlossen wird, selbst wenn eine Ausnahme auftritt. Wenn Sie also große Dateien in Java lesen, ist es am besten, einen gepufferten Reader, eine kleinere Puffergröße, eine Streaming-API und einen parallelen Stream zu verwenden und die Datei nach dem Lesen zu schließen. Darüber hinaus kann die Verwendung einer try-with-resources- Anweisung dazu beitragen, sicherzustellen, dass die Datei im Ausnahmefall ordnungsgemäß geschlossen wird.

So sortieren Sie eine Liste in Java. Verschiedene Methoden zur Listensortierung in Java

Quelle: FreeCodeCamp Dieser Beitrag behandelt verschiedene Methoden zur Listensortierung in Java: Collections.sort() , stream.sorted() und List.sort() . Kaffeepause Nr. 196.  So lesen Sie Dateien in Java 8 und Java 11 richtig. So sortieren Sie eine Liste in Java, verschiedene Methoden zum Sortieren von Listen in Java - 2Manchmal müssen Daten in einer bestimmten Reihenfolge angeordnet werden, damit sie leichter verstanden, gefunden und verarbeitet werden können. Wir nennen diesen Prozess Sortieren. Mithilfe der Sortierung können Sie Daten nicht nur in einer bestimmten Reihenfolge, sondern auch nach Kriterien organisieren: beispielsweise nach Datentyp, einschließlich Zahlen, Zeichenfolgen und Objekten. Die Java-Sprache verfügt über integrierte Methoden zum Sortieren, beispielsweise in den Collections- Klassen . Die Java-Sortierung wird häufig in E-Commerce-Anwendungen verwendet, bei denen der Benutzer eine Produktliste anzeigen muss. Produkte können je nach den vom Benutzer gestellten Anforderungen wie Preis, Bewertung, Marke usw. auf verschiedene Arten sortiert werden. Wenn ein Benutzer beispielsweise alle Produkte in aufsteigender Reihenfolge nach Preis sortiert sehen möchte, kann die Anwendung einen Sortieralgorithmus verwenden, um die Produkte in dieser Reihenfolge anzuordnen. Auf diese Weise kann ein Benutzer beim Durchsuchen von Produkten zuerst die günstigsten Produkte sehen und entsprechend eine Kaufentscheidung treffen.

So verwenden Sie die Collections.Sort()-Methode in Java

Eine der gebräuchlichsten Methoden zum Sortieren von Daten in Java ist die Verwendung der Collections.sort()- Methode . Standardmäßig wird die Liste in aufsteigender Reihenfolge sortiert. Hier ist ein Beispiel für die Verwendung der Collections.sort() -Methode zum Sortieren einer Liste von Ganzzahlen:
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);
    }
}
Der obige Code erstellt eine Liste von Ganzzahlen, fügt vier Zahlen hinzu, sortiert die Liste und gibt die sortierte Liste dann auf der Konsole aus. Es verwendet Klassen aus der Java-Standardbibliothek, um Operationen auszuführen, einschließlich java.util.Collections , java.util.List und java.util.ArrayList . Die Ausgabe ist die folgende:
//Sortierte Liste ausgeben: [1, 2, 3, 4]
Sie können eine Liste benutzerdefinierter Objekte auch mit der Methode Collections.sort() sortieren . Dazu müssen Sie einen Komparator erstellen und ihn als Argument an die Methode Collections.sort() übergeben . Ein Komparator ist ein Objekt, das die java.util.Comparator- Schnittstelle implementiert . Es verfügt über eine einzige aufrufbare Methode, Compare() , die zwei Objekte vergleicht und eine Ganzzahl zurückgibt, die ihre relative Reihenfolge angibt. Hier ist ein Beispiel für die Verwendung eines Komparators zum Sortieren einer Liste benutzerdefinierter Objekte:
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();
    }
}
Der oben gezeigte Code erstellt eine Liste von Personenobjekten , fügt der Liste mehrere Personenobjekte hinzu , sortiert die Liste mithilfe eines benutzerdefinierten Komparators ( PersonComparator ) und druckt dann die sortierte Liste aus. Die Person- Klasse verfügt über zwei Felder, name und age , sowie Getter-Methoden für diese Felder. Die PersonComparator- Klasse implementiert die Comparator- Schnittstelle und überschreibt die Vergleichsmethode, um Person- Objekte nach Alter ( age ) zu sortieren. Die Ausgabe dieses Programms sieht folgendermaßen aus:
//sortierte Liste ausgeben: [Charlie (20), Alice (25), Bob (30)]
Die Methode Collections.sort() wird am besten verwendet, wenn Sie über eine Sammlung von Objekten verfügen, die Sie nach einem oder mehreren Feldern sortieren möchten. Wenn Sie beispielsweise über eine Sammlung von Employee- Objekten verfügen und diese nach Nachnamen sortieren möchten, können Sie die Methode Collections.sort() verwenden und einen benutzerdefinierten Komparator übergeben, der die Nachnamen der Employee- Objekte vergleicht .

So verwenden Sie die List.Sort()-Methode in Java

Diese Methode sortiert die Liste in aufsteigender Reihenfolge. So funktioniert das:
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]
    }
}
Innerhalb der Hauptmethode erstellt Arrays.asList eine Liste von ganzen Zahlen, die als Zahlen bezeichnet werden . Anschließend sortiert der Code diese Zahlenliste mithilfe der Standardsortiermethode, da null an die Sortiermethode übergeben wird . Abschließend wird die sortierte Liste mithilfe der Methode System.out.println auf der Konsole gedruckt . Die Ausgabe ist [1, 2, 3, 4, 5] . List.sort() ist nützlich, wenn Sie eine Liste von Elementen haben, die sortiert werden müssen. Wenn Sie beispielsweise eine Liste mit Zeichenfolgen haben und diese alphabetisch sortieren möchten, können Sie dazu die Methode List.sort() verwenden . List.sort() ist eine Instanzmethode der List- Klasse und sortiert die Elemente in der Reihenfolge, die durch ihre natürliche Reihenfolge oder die gegebene Icomparer- Implementierung bestimmt wird .

So verwenden Sie die Methode stream.sorted() in Java

In Java 8 und höher können Sie die Stream-API zum Sortieren einer Liste verwenden. Es stellt die Methode sorted bereit , mit der die Elemente eines Streams sortiert werden können. Hier ist ein Beispiel für das Sortieren einer Liste von Ganzzahlen mithilfe eines Streams:
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]

    }
}
Wie Sie sehen, wird die Zahlenliste mit der Methode stream() in einen Stream umgewandelt . Anschließend wird die Methode sorted() aufgerufen, um die Elemente im Stream zu sortieren . Die Methode „collect(Collectors.toList())“ wird verwendet, um die sortierten Elemente wieder in einer Liste zu sammeln. Das Ergebnis ist eine neue Liste mit den sortierten Elementen. Die Ausgabe ist [1, 2, 3, 4, 5] . stream.sorted() wird am besten verwendet, wenn Sie einen Stream von Elementen haben, die sortiert werden müssen. Wenn Sie beispielsweise einen Strom von Ganzzahlen haben und diese in aufsteigender Reihenfolge sortieren möchten, ist es besser, hierfür die Methode stream.Sorted() zu verwenden .

Abschluss

In diesem Tutorial haben Sie erfahren, dass es in Java mehrere Möglichkeiten gibt, eine Liste zu sortieren – die Methode Collections.sort() , die Methode stream.sorted() und die Methode List.sort() . Welche dieser Methoden am besten zum Einsatz kommt, hängt von den spezifischen Anforderungen der jeweiligen Aufgabe ab. Ich hoffe, dieser Artikel hat Ihnen die richtigen Informationen zum Sortieren einer Liste in Java gegeben. Viel Spaß beim Codieren!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION