質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

3886閲覧

[Java]Listの中に配列があり、リストの順番を配列の要素でソートしたい

taro_11111

総合スコア4

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/08/24 12:59

編集2021/08/24 12:59

タイトルはちょっと意味が分からないと思いますので
以下コード例です。お願いいたします。

Java

1public class A { 2 3 public static void main(String[] args) { 4 List<String[]> list = new ArrayList<>(); 5 String[] a = { "1", "Monday" }; 6 String[] b = { "3", "Wednesday" }; 7 String[] c = { "2", "Tuesday" }; 8 9 list.add(a); 10 list.add(b); 11 list.add(c); 12 13 for (String[] str : list) { 14 System.out.println(str[0] + str[1]); 15 } 16 } 17}

実行すると以下の結果になります。

1Monday 3Wednesday 2Tuesday

これを配列の最初の要素(index0)で判別し、昇順もしくは降順でソートを行いたいです。
期待する結果としては以下のような感じです。

1Monday 2Tuesday 3Wednesday

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2021/08/24 15:06 編集

ソートのロジックをご自分で作る(作りたい)ということなのでしょうか。 それとも、何かのメソッドを使うつもりなのでしょうか。
taro_11111

2021/08/24 15:37

ソートした後にそのリストを使いたいのです。 ロジックを自分で作りたいということではありません。
jimbe

2021/08/24 15:45

では、一つには「ロジックを作らずにソートする方法」を探されていて、かつ、二つ目として「それは配列の中身でソートするもの」・・・ということでしょうか。
taro_11111

2021/08/24 15:48

恐らくそのようなメソッド等ないかと思っていますので ロジックの作り方というか、このような設計でコードを書けば配列の中身でソートできますよ みたいな教えが欲しかったのです。
jimbe

2021/08/24 16:11 編集

ふむ。 ではもう少し単刀直入にお伝え致します。 List をソートする方法はほぼ java の初期から存在しますし、どのようにソートするのかも自由に書けます。 java.util.Collections クラスやその sort メソッド、およびその引数 Comparator についてお調べになっては如何でしょうか。 また、最近は List クラス自体にも sort メソッドがありますし、stream 化してソートする方法もあります。
taro_11111

2021/08/24 16:13

一応自分なりに調べて分からなかったので、ここで質問した次第でございます。 リストの中身が配列であるパターンで配列の要素で並び替えを行うパターンが調べてみてもなかったので質問させて頂きました。
jimbe

2021/08/24 17:06

> 一応自分なりに調べて分からなかった でしたら、ご質問内にそのお調べになった情報(サイトのURLや書籍名等)や具体的にどこが分からなかったのか(「~」と書いてあるが XXX を YYY しても ZZZ にならなかった等も)をお書きくださると、ここまでのようなやりとりが大分減らせたりしますので、ご一考ください。 > ~パターンが調べてみてもなかった プログラムを作り始められた方で良く見受けられますのは「ある処理を行う方法は定まっている」という思い込みで欲しいモノに完全一致する情報を探されることです。 プログラミングは「作り出す」作業です。利用できるモノは利用しますが、無ければ作るということです。各種情報に出てくるコードは、その作者の必要に応じて「作り出した」ものです。そこから翻って『自らも「作り出す」』という発想に至って頂けたら…と思います。
guest

回答1

0

ベストアンサー

List をソートする方法はほぼ java の初期から存在しますし、どのようにソートするのかも自由に書けます。

java

1 Collections.sort(list, new Comparator<String[]>(){ 2 public int compare(String[] a, String[] b) { 3 return Integer.parseInt(a[0]) - Integer.parseInt(b[0]); 4 } 5 });

java1.8 からは List に sort メソッドがありますので、

java

1 list.sort(new Comparator<String[]>(){ 2 public int compare(String[] a, String[] b) { 3 return Integer.parseInt(a[0]) - Integer.parseInt(b[0]); 4 } 5 });

でも可能です。

ラムダ式も使えますし、ストリームでも出来ます。

投稿2021/08/24 16:37

jimbe

総合スコア13168

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taro_11111

2021/08/24 17:06

ありがとうございます。 最初の要素でソートできることを確認しました。 お手数をおかけしました。m(__)m
jimbe

2021/08/24 17:08

少しでも Collections や sort, Comparator の使い方のご理解の助けになりましたら幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問