特定の列に基づいて 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 サイトの他の関連記事を参照してください。