Heim >Java >javaLernprogramm >Wie sortiere ich ein zweidimensionales Array nach einer bestimmten Spalte in Java?

Wie sortiere ich ein zweidimensionales Array nach einer bestimmten Spalte in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 11:14:03291Durchsuche

How to Sort a Two-Dimensional Array by a Specific Column in Java?

Sortieren zweidimensionaler Arrays nach Spalte in Java

Die Aufgabe, ein zweidimensionales Array basierend auf einer bestimmten Spalte zu sortieren, stellt in Java eine einzigartige Herausforderung dar. Um dies zu erreichen, geht die folgende Lösung auf die Details des Problems ein und stellt eine umfassende Code-Implementierung bereit.

Die bereitgestellte Eingabe besteht aus einem zweidimensionalen Array, wobei die erste Spalte ein Datum im Format „JJJJ“ darstellt. MM.dd HH:mm“ und die zweite Spalte enthält Zeichenfolgen. Das Ziel besteht darin, dieses Array nach der ersten Spalte zu sortieren, was dazu führt, dass die Daten in chronologischer Reihenfolge angeordnet werden.

Implementierung

Der bereitgestellte Java-Code verwendet die integrierte Methode Arrays.sort() in Kombination mit einem Komparator, um die gewünschte Sortierung zu erreichen. Der Komparator definiert eine Regel zum Vergleichen der Array-Elemente, wobei der Schwerpunkt insbesondere auf der ersten Spalte (dem Datum) liegt. Der Code vergleicht die Daten mithilfe der Methode „compareTo()“, die einen ganzzahligen Wert zurückgibt, der die relative chronologische Reihenfolge der Daten angibt.

<code class="java">import java.util.Arrays;
import java.util.Comparator;

public class TwoDArraySort {

    public static void main(final String[] args) {
        final String[][] data = new String[][] {
                new String[] { "2009.07.25 20:24", "Message A" },
                new String[] { "2009.07.25 20:17", "Message G" },
                new String[] { "2009.07.25 20:25", "Message B" },
                new String[] { "2009.07.25 20:30", "Message D" },
                new String[] { "2009.07.25 20:01", "Message F" },
                new String[] { "2009.07.25 21:08", "Message E" },
                new String[] { "2009.07.25 19:54", "Message R" } };

        Arrays.sort(data, new Comparator<String[]>() {
            @Override
            public int compare(final String[] entry1, final String[] entry2) {
                final String time1 = entry1[0];
                final String time2 = entry2[0];
                return time1.compareTo(time2);
            }
        });

        for (final String[] s : data) {
            System.out.println(s[0] + " " + s[1]);
        }
    }

}</code>

Ausgabe

Die Ausgabe des bereitgestellten Codes ist wie folgt folgt:

2009.07.25 19:54 Message R
2009.07.25 20:01 Message F
2009.07.25 20:17 Message G
2009.07.25 20:24 Message A
2009.07.25 20:25 Message B
2009.07.25 20:30 Message D
2009.07.25 21:08 Message E

Diese Ausgabe zeigt, dass das zweidimensionale Array erfolgreich nach der ersten Spalte sortiert wurde, was zur chronologischen Reihenfolge der Daten führt.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein zweidimensionales Array nach einer bestimmten Spalte in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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