タイトルのようなソートするプログラムを作りたいのですがJava初心者で分からず困っています。
o01921 2 18 21 17 41 15 48 11 7 19
n03295 31 47 2 25 7 3 3 23 61 19
k00886 2 10 31 18 0 11 59 31 20 41
f01295 39 1 45 73 11 10 5 39 0 1
o02369 31 56 6 12 2 47 25 31 19 0
f00455 3 1 60 36 4 20 39 1 24 55
h01795 5 2 35 0 32 49 10 48 41 21
y04159 34 1 37 15 67 2 21 30 29 8
o00021 15 9 47 53 51 22 29 2 0 16
w00501 68 49 64 5 9 21 18 1 11 0
↑テキストファイル
import java.io.*;
import java.util.*;
class Student {
String name;
int[] score = new int[10]; // magic number.
void show() {
System.out.print(name);
for (int i = 0; i < score.length; ++i) {
System.out.printf(" % 4d", score[i]);
}
System.out.println("");
}
}
class Base {
Base() {
}
void set(String line) {
Student student = new Student();
Scanner scanner = new Scanner(line);
student.name = scanner.next();
for (int i = 0; i < 10; ++i) { // magic number.
student.score[i] = scanner.nextInt();
}
student.show();
}
public static void main(String[] args) {
if (args.length > 0) {
Base body = new Base();
try {
BufferedReader in = new BufferedReader(new FileReader(args[0]));
String line;
while ((line = in.readLine()) != null) {
body.set(line);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
↑参照プログラム
上記の参照コードを実行すると単にファイルを読み込んで印字するだけになっています。
これにコードを追加して点数が大きい順に並び替えたいです。
同点の場合は辞書順に並びかえます。
わかる方いましたらご回答よろしくお願いします。
No.1ベストアンサー
- 回答日時:
フィールド Base#students を作る
メソッド Base#add を作り、Base#students へ Student のオブジェクトを追加する
メソッド Base#show を作り、Base#students を sort した結果を表示させる
並び替えの方法を指定できる sort の例
https://docs.oracle.com/javase/jp/8/docs/api/jav …
https://docs.oracle.com/javase/jp/8/docs/api/jav …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
夏が終わったと感じる瞬間って、どんな時?
まだまだ暑い今日この頃。 しかしながら、もう夏は終わっている!……はず。 あなたが思う「夏が終わった!」エピソードを教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
【Java8以降】csvファイルの複数キーソート
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csv出力について
-
Inputstreamについて
-
テキストファイルのアップロード
-
Java int sum = 0は必要ですか?
-
大きな容量のファイルを転送する
-
InputStream.read()でタイムア...
-
Class.forNameでエラーになる
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
JAVAで、SSL通信
-
コマンドプロンプトで入力をす...
-
JAVAでエラーがでる。
-
テキストファイルにおいて任意...
-
androidアプリが強制終了してし...
-
System.err. printlnとSystem.o...
-
ダブルクォーテーションのrepla...
-
IF関数でEmpty値を設定する方法。
-
Javaで改行などが出来ないのです。
-
JSPやサーブレットでSystem.out...
-
パソコンキーボードで時分秒を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
テキストファイルから空白行をよむ
-
InputStream.read()でタイムア...
-
javaのfor文が機能してないみた...
-
[JAVA]エラーが解決できません。
-
BufferedReaderでのエラー
-
Inputstreamについて
-
テキストファイルにおいて任意...
-
九九を横に表示する。
-
ObjectInputStreamとStreamCorr...
-
スペースを含めた文字列の検索
-
テキストファイルの任意の文字...
-
Java 読み込んだテキストファイ...
-
java連結
-
Javaの質問です。テキストファ...
-
Javaでデータに登録する度にID...
-
ソケットを使ったサーバとクラ...
-
バイナリファイルの読み込みに...
おすすめ情報