Heim Java javaLernprogramm Ausführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java

Ausführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java

Jul 25, 2023 am 10:13 AM
java 数组排序 arrays类

Detaillierte Erklärung, wie Java die Arrays-Klasse zum Sortieren von Arrays verwendet

Bei der Java-Programmierung ist es häufig erforderlich, Arrays zu sortieren. Um den Sortiervorgang zu vereinfachen, stellt Java die Klasse Arrays bereit, die einige häufig verwendete Sortiermethoden enthält. In diesem Artikel wird die Sortiermethode der Arrays-Klasse ausführlich vorgestellt und ihre Verwendung anhand von Codebeispielen demonstriert.

  1. Sortiermethoden der Arrays-Klasse

Die Arrays-Klasse bietet zwei überladene Sortiermethoden, nämlich sort und parallelSort. Ersteres wird zum seriellen Sortieren von Arrays verwendet, während letzteres zum parallelen Sortieren von Arrays verwendet wird.

1.1 Sortiermethode

Die Sortiermethode wird verwendet, um das Array seriell zu sortieren. Es verfügt über mehrere überladene Methoden und je nach Sortieranforderungen können verschiedene Methoden ausgewählt werden.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

public class ArraySortExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}
Nach dem Login kopieren

Die laufenden Ergebnisse lauten wie folgt:

排序前:[5, 2, 9, 1, 3]
排序后:[1, 2, 3, 5, 9]
Nach dem Login kopieren
Nach dem Login kopieren

1.2 parallelSort-Methode

Die parallelSort-Methode wird verwendet, um Arrays parallel zu sortieren. Im Vergleich zur Sortiermethode kann der Sortiervorgang schneller abgeschlossen werden und eignet sich für Arrays mit größerem Maßstab.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

public class ArrayParallelSortExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        Arrays.parallelSort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}
Nach dem Login kopieren

Die laufenden Ergebnisse lauten wie folgt:

排序前:[5, 2, 9, 1, 3]
排序后:[1, 2, 3, 5, 9]
Nach dem Login kopieren
Nach dem Login kopieren
  1. Sortieralgorithmus

Die Sortiermethode in der Arrays-Klasse verwendet den optimierten Schnellsortierungsalgorithmus (Dual-Pivot Quicksort), der Folgendes bietet In den meisten Fällen bessere Leistung. Hohe Leistung. Dieser Algorithmus basiert auf der Idee des Teilens und Herrschens, indem er zwei Pivot-Elemente auswählt, um das Array in drei Teile zu unterteilen: den Teil, der kleiner als das Pivot-Element ist, den Teil, der dem Pivot-Element entspricht, und den Teil, der größer als das Pivot-Element ist Element. Anschließend wird die Sortieroperation rekursiv für die geteilten zwei Teile durchgeführt.

Die zeitliche Komplexität des Schnellsortierungsalgorithmus beträgt O(nlogn), wobei n die Länge des Arrays ist.

  1. Hinweise

Wenn Sie die Arrays-Klasse zum Sortieren von Arrays verwenden, müssen Sie die folgenden Punkte beachten:

3.1 Die Comparable-Schnittstelle muss implementiert werden.

Wenn Sie das Objektarray einer benutzerdefinierten Klasse sortieren möchten, Die Klasse muss die Schnittstelle Comparable implementieren und die Methode CompareTo überschreiben. Dies ermöglicht einen korrekten Vergleich der Objektgrößen beim Sortieren.

Der Beispielcode lautet wie folgt:

import java.util.Arrays;

class Student implements Comparable<Student> {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    @Override
    public int compareTo(Student o) {
        return this.score - o.score;
    }

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

public class StudentSortExample {
    public static void main(String[] args) {
        Student[] students = {new Student("Tom", 90), new Student("Jerry", 80)};
        System.out.println("排序前:" + Arrays.toString(students));
        Arrays.sort(students);
        System.out.println("排序后:" + Arrays.toString(students));
    }
}
Nach dem Login kopieren

Die laufenden Ergebnisse lauten wie folgt:

排序前:[Tom: 90, Jerry: 80]
排序后:[Jerry: 80, Tom: 90]
Nach dem Login kopieren

3.2 Leistungsoptimierung der parallelen Sortierung

Wenn parallele Sortierung anwendbar ist und die Länge des Arrays kleiner als der Standardschwellenwert (8192) ist wird in der Arrays-Klasse verwendet), der Einfügungssortierungsalgorithmus wird zum Sortieren verwendet. Der Einfügungssortierungsalgorithmus bietet eine bessere Leistung bei kleinen Datenmengen.

Um die Leistung der parallelen Sortierung weiter zu verbessern, können Sie die Verwendung des herkömmlichen Zusammenführungssortierungsalgorithmus erzwingen, indem Sie die Systemeigenschaft java.util.Arrays.useLegacyMergeSort auf true setzen. Dies vermeidet die Verwendung der Einfügungssortierung bei paralleler Sortierung. java.util.Arrays.useLegacyMergeSort为true,强制使用传统的归并排序算法。这样可以在并行排序的情况下避免使用插入排序。

示例代码如下:

import java.util.Arrays;

public class ArrayParallelSortPerformanceExample {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 3};
        System.out.println("排序前:" + Arrays.toString(arr));
        System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
        Arrays.parallelSort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
    }
}
Nach dem Login kopieren
  1. 总结

本文详细介绍了Java中使用Arrays类进行数组排序的方法。通过调用sort方法可以对数组进行串行排序,而调用parallelSort方法可以对数组进行并行排序。并行排序的性能优于串行排序,适用于大规模数据。在使用自定义类的对象数组进行排序时,需要实现Comparable接口。同时,通过设置java.util.Arrays.useLegacyMergeSort

Der Beispielcode lautet wie folgt: 🎜rrreee
    🎜Zusammenfassung🎜🎜🎜Dieser Artikel beschreibt die Methode zur Verwendung der Arrays-Klasse für die Array-Sortierung in Java. Arrays können seriell sortiert werden, indem die Methode sort aufgerufen wird, und Arrays können parallel sortiert werden, indem die Methode parallelSort aufgerufen wird. Die parallele Sortierung bietet eine bessere Leistung als die serielle Sortierung und eignet sich für große Datenmengen. Wenn Sie zum Sortieren ein Objektarray einer benutzerdefinierten Klasse verwenden, müssen Sie die Comparable-Schnittstelle implementieren. Gleichzeitig kann die Leistung der parallelen Sortierung weiter optimiert werden, indem die Eigenschaft java.util.Arrays.useLegacyMergeSort auf „true“ gesetzt wird. Durch die Beherrschung der Sortiermethode der Arrays-Klasse können Array-Sortierprobleme bei der Programmierung effizienter gelöst werden. 🎜

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Sortieren von Arrays mithilfe der Arrays-Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

See all articles