回答編集履歴
2
compareの実装変更
answer
CHANGED
@@ -19,9 +19,9 @@
|
|
19
19
|
list.sort(new Comparator<Test1.Score>() {
|
20
20
|
@Override
|
21
21
|
public int compare(Score o1, Score o2) {
|
22
|
-
|
22
|
+
// 比較対象を逆にする
|
23
|
-
|
23
|
+
Integer s2 = o2.getTotalScore();
|
24
|
-
return
|
24
|
+
return s2.compareTo(o1.getTotalScore());
|
25
25
|
}
|
26
26
|
});
|
27
27
|
|
1
applyAsIntの実装変更
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
効率的というのが実装の楽さでいうなら
|
15
15
|
Listのsortメソッドを、そのまま使う。
|
16
|
-
Comparetorは昇順なので、判定を逆にする
|
16
|
+
Comparetorは昇順なので、判定を逆に実装するのが楽かな
|
17
17
|
|
18
18
|
```java
|
19
19
|
list.sort(new Comparator<Test1.Score>() {
|
@@ -26,9 +26,7 @@
|
|
26
26
|
});
|
27
27
|
|
28
28
|
```
|
29
|
-
comapreの実装が通常と異なるのがイヤであれば
|
29
|
+
comapreの実装が通常と異なるのがイヤであれば以下の実装でも可能です。
|
30
|
-
以下の実装でも可能です。
|
31
|
-
※効率的が処理効率であるなら、revserをかます分こちらの方が重いです。
|
32
30
|
|
33
31
|
```java
|
34
32
|
list.sort(
|
@@ -36,11 +34,9 @@
|
|
36
34
|
new ToIntFunction<Score>() {
|
37
35
|
@Override
|
38
36
|
public int applyAsInt(Score s) {
|
39
|
-
return s.getBiology() + s.getEnglish() + s.getPhysics();
|
37
|
+
return -1 * (s.getBiology() + s.getEnglish() + s.getPhysics());
|
40
38
|
}
|
41
39
|
}));
|
42
|
-
// ここで逆順(降順)にする
|
43
|
-
Collections.reverse(list);
|
44
40
|
```
|
45
41
|
|
46
42
|
効率というか後々のことを考えれば合計点を返すメソッドを用意した方が楽でしょう。
|