Java で 2 次元配列を特定の列でソートするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-03 11:14:03
オリジナル
241 人が閲覧しました

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

Java での 2 次元配列の列によるソート

特定の列に基づいて 2 次元配列をソートするタスクには、Java 特有の課題が伴います。これを達成するために、次の解決策は問題の詳細を掘り下げ、包括的なコード実装を提供します。

提供された入力は 2 次元配列で構成され、最初の列は「yyyy」形式の日付を表します。 MM.dd HH:mm" であり、2 番目の列には文字列が含まれます。目的は、この配列を最初の列でソートし、日付が時系列に並べられるようにすることです。

実装

提供された Java コードでは、組み込みの Arrays.sort() メソッドが使用されています。 Comparator と組み合わせて、目的の並べ替えを実現します。コンパレーターは、特に最初の列 (日付) に焦点を当てて、配列要素を比較するためのルールを定義します。このコードは、compareTo() メソッドを使用して日付を比較し、日付の相対的な時系列順序を示す整数値を返します。

<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>
ログイン後にコピー

出力

提供されたコードの出力は次のとおりです。

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
ログイン後にコピー

この出力は、2 次元配列が最初の列で正常に並べ替えられ、日付が時系列順になったことを示しています。

以上がJava で 2 次元配列を特定の列でソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート