Javaの講義でArrayListのソートの課題がでたのです

Writer: admin Type: タブレット端末 Date: 2018-12-14 00:00
Javaの講義でArrayListのソートの課題がでたのですが、バブルソートを利用するよう指示されました。配列のバブルソートを講義内で教わり、応用編でこの問題が出ました。色々調べたのですがListのソートはCollectionクラスのsortメソッドなど、便利機能を利用してのソースコードしかありませんでした。ちなみにリストに詰めているデータは人の名前、年齢、出身地です。それを出身地別に昇順で並び替えなければなりません。 この場合はリストを配列に変換してから、バブルソートで並び替えでいいのでしょうか?または1人1人の情報を取り出して、1人目:Aさん、20歳、東京2人目:Bさん、30歳、埼玉3人目:Cさん、25歳、東京という3つの配列を作って、配列ごと並び替える、、なんてことはできますか?それもきっと変なのだと思いますが、、ヒント、アドバイスを頂きたいです。よろしくお願いします。共感した0###回答つかないようなので、少しだけ。> この場合はリストを配列に変換してから、...変換しなくても、できるはず。配列のように array[i] という構文での要素参照はできないけど、インデックス(0始まりでの何番目)を指定しての要素アクセスはList にメソッドがあるから。https://docs.oracle.com/javase/jp/8/docs/api/java/util/ArrayList.ht...https://docs.oracle.com/javase/jp/8/docs/api/java/util/ArrayList.ht...> または1人1人の情報を取り出して、... という3つの配列を作って...やればできるでしょうが、そんなことは普通しないと思うよ。お一人様を表現する型(Javaだからclass)を作り、その中に 名前・年齢・出身地 といった属性(Javaだからインスタンスフィールド)を設ける。そのインスタンスを要素として持つ1つのArrayListにしたて、それを並び替える、が素直でわかりやすいフツー?の方法。ソートの際、2つの要素を比較して順序判断するとき、出身地 のみをソートキーとして比較するとすればいいだけで。具体コードは、書きません。ナイス0
###おっしゃる通り、変換しなくてもできました。ありがとうございました。

 

TAG