• ベストアンサー

Javaで2次元配列で文字によるソート方法

2次元配列を使用して、上の図のような配列を下のように文字にってソートしたいのですが、やり方が分かりません。 ちなみに、すべて文字型です。 どなたかJavaによるコードを教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

配列のソートを行う機能はjava.util.Arrays.sort()が持っていますが、データの大小を比較する方法はプログラマが指定する必要があります。 回答No.1に書いた (String[] d1, String[] d2) -> d1[0].compareTo(d2[0]) の部分が比較方法を表していて「Stringの配列d1とd2があったとき、それぞれの先頭要素d1[0]とd2[0]をString.compareTo()で比較する」という意味です。 以前は java.util.Arrays.sort(data, new java.util.Comparator<String[]>() { @Override public int compare(final String[] d1, final String[] d2) { return d1[0].compareTo(d2[0]); } }); と書いていたものが、Java 8で導入された記法によって簡潔に書けるようになったのです。

hirapiro
質問者

お礼

解説していただき、ありがとうございました! いろいろなメソッドがあるんですね。 こういったものをたくさん知っていると、できることが増えますね! 勉強になりました、ありがとうございました(^^)

その他の回答 (1)

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

Java 8以降用 String[][] data = { { "AAA", "10" }, { "CCC", "20" }, { "BBB", "30" } }; java.util.Arrays.sort(data, (String[] d1, String[] d2) -> d1[0].compareTo(d2[0]));

hirapiro
質問者

お礼

やはり簡単にはできないんですね。 うーん、すごいです。 異次元の呪文にしか見えません(^^; ありがとうございました。

関連するQ&A