こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2020-09-12 17:31:05

QNo.9798177

すぐに回答ほしいです

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

配列のソートを行う機能は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で導入された記法によって簡潔に書けるようになったのです。

投稿日時 - 2020-09-13 08:51:58

お礼

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

投稿日時 - 2020-09-13 20:09:01

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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]));

投稿日時 - 2020-09-12 19:39:28

お礼

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

投稿日時 - 2020-09-13 05:46:36

あなたにオススメの質問