前提・実現
<前提>
修飾子は変更しない
Grade-classインナークラスとして作成。
java.util.List<Score>)フィールドを作成として
individual grade listsをconstructorでinitialize。
<実現>
[Name」「Total_Score」を降順で表示
<質問>
降順で表示するために自然順序付してくれるtreeMapで実現しましたが、他の方法で効率的に実現可能であれば教えてください。
該当のソースコード
Java
1 2import java.util.ArrayList; 3import java.util.Comparator; 4import java.util.List; 5import java.util.Map; 6import java.util.TreeMap; 7 8public class Test1 { 9 10 public static void main(String[] args) { 11 12 System.out.println("<Grades>"); 13 14 List<Score> scoreList = new ArrayList<Score>(); 15 16 //individual grade lists 17 18 scoreList.add(new Test1.Score("Alex", 99, 50, 89)); 19 scoreList.add(new Test1.Score("Sara", 45, 78, 90)); 20 scoreList.add(new Test1.Score("Luca", 92, 85, 63)); 21 scoreList.add(new Test1.Score("Camila", 69, 95, 71)); 22 scoreList.add(new Test1.Score("Ben", 77, 90, 47)); 23 24 execute(scoreList); 25 } 26 27 private static void execute(List<Score> list) { 28 29 Map<Integer, String> map = new TreeMap<>(new Comparator<Integer>() { 30 public int compare(Integer k1, Integer k2) { 31 return k2.compareTo(k1); 32 } 33 }); 34 35 for (Test1.Score l : list) { 36 map.put(l.getBiology() + l.getEnglish() + l.getPhysics(), l.getName()); 37 } 38 39 40 for (Integer i : map.keySet()) { 41 System.out.println(map.get(i) + " : " + i); 42 } 43 44 } 45 46 //Grades-class 47 48 private static class Score { 49 50 51 private String name; 52 53 private int biology; 54 55 private int english; 56 57 private int physics; 58
試したこと
以下のサイトで検索してみましたが、treemapで実現した方が楽にソート出来た。
Comparator.NaturalOrder
TreeMap Comparator
補足情報(FW/ツールのバージョンなど)
Programing Language:Java
Version:8.0
エディター:eclipse Version: 1.14.102.201911250848
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/23 13:44