🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

1回答

739閲覧

成績ファイルを読み込み、得点の低い順に成績の一覧を表示する方法が分からない。

NIKONIKONIKONIK

総合スコア83

Java

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

0グッド

0クリップ

投稿2019/10/12 08:00

編集2019/10/12 08:57

Comparable<Seiseki>を実装して、ファイルの中身を得点の低い順に並び変えて表示したい

java

1package Kadai0202; 2 3public class Seiseki implements Comparable<Seiseki>{  //Comparable<Seiseki>を実装 4 private String bango; //学籍番号 5 private String name; //学生氏名 6 private int ten;  //得点 7 8 Seiseki(String bango,String name,int ten){ 9 this.bango = bango; 10 this.name = name; 11 this.ten = ten; 12 } 13 14 String getBango(){ 15 return bango; 16 } 17 18 String getName() { 19 return name; 20 } 21 22 int getTen() { 23 return ten; 24 } 25 26 public int compareTo(Seiseki o) { //降順 27 return o.ten - ten; 28 } 29} 30

java

1package Kadai0202; 2 3import java.io.BufferedReader; 4import java.io.FileReader; 5import java.io.IOException; 6import java.util.LinkedHashSet; 7import java.util.Scanner; 8import java.util.Set; 9 10public class Kadai0202 { 11 12 public static void main(String[] args) { 13 // TODO 自動生成されたメソッド・スタブ 14 Scanner sc = new Scanner(System.in); 15 Set<Seiseki> seiseki = new LinkedHashSet<Seiseki>(); 16 17 try(BufferedReader bw = new BufferedReader(new FileReader("seiseki.txt"))){ 18 String recode; 19 20 while((recode = bw.readLine())!= null) { 21 String[] data = recode.split(","); 22 Seiseki ss = new Seiseki(data[0],data[1],Integer.parseInt(data[2])); 23 ss.compareTo(ss); 24 seiseki.add(ss); 25 } 26 27 for(Seiseki s : seiseki) { 28 System.out.println(s.getBango() + s.getName() + s.getTen()); 29 bw.readLine(); 30 } 31 bw.close(); 32 }catch (IOException e) { 33 e.printStackTrace(); 34 } 35 } 36} 37

txt

1//成績ファイル 218JN0001,inoue Keiko,70 318JN0002,furukawa kazuya,25 418JN0003,nozima kanako,55 518JN0004,minagawa tomoki,30

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

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

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

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

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

guest

回答1

0

ベストアンサー

Comparable<Seiseki>を実装して

実装すりゃいいじゃないですか。

java

1public class Seiseki implements Comparable<Seiseki> {

メソッド自体はあるのだからこれでいい。
あとは、compareToの結果を基に並び替えをすればいい。
あるいは既存のメソッドCollections.sort()などを使うと、自分で並び替えのコードを書く必要が無い。
ただし、現状compareToが得点の降順になるように並べるよう設計されているので要注意。

投稿2019/10/12 08:05

編集2019/10/12 08:06
swordone

総合スコア20669

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

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

NIKONIKONIKONIK

2019/10/12 08:57 編集

メインメソッドでCompareToをどこで実行すればいいですか?
swordone

2019/10/12 18:51

ソートアルゴリズムを勉強してください。種々のソートアルゴリズムでは数値の大小を判定していますが、これの場合はその代わりにcompareToメソッドの正負で判定すればいいのです。 それが面倒ならやはりCollections.sortなどを使いましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問