タイトルのようなソートするプログラムを作りたいのですが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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初心者です。csvファイルの...
-
JavamailでGmailのお気に入りフ...
-
java シンボルが見つかりません
-
URL\正規表現@java
-
JSPからパラメータを取得してサ...
-
Javaの質問です。テキストファ...
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Junitテストでvoid戻り値メッソ...
-
シャットダウンフックが呼ばれない
-
EXCEL VBA で、0から?1から?
-
テキストボックスに入力された...
-
べき乗
-
グレイコードの変換
-
C# ListBoxのインデックスの値...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
InputStream.read()でタイムア...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
javaのfor文が機能してないみた...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
以下のJAVAプログラムでご質問...
-
Class.forNameでエラーになる
-
ソケットを使ったサーバとクラ...
-
テキストファイルにおいて任意...
-
テキストファイルの任意の文字...
-
JAVAでエラーがでる。
-
Inputstreamについて
-
ObjectInputStreamとStreamCorr...
-
Windowsでの標準入力の終了の仕方
-
[JAVA]エラーが解決できません。
おすすめ情報