我需要編寫一種方法,以返回金牌數量多于銅牌和銀牌最多的國家名稱。這就是我獲得金牌的方式,但是如何轉換為其他人可以執行的方法。 List<String> countryName = new ArrayList<>(); List<Integer> goldMedal = new ArrayList<>(); Map<String, Integer> map = new HashMap<>(); Iterator<String> i1 = countryName.iterator(); Iterator<Integer> i2 = goldMedal.iterator(); while (i1.hasNext() && i2.hasNext()) { map.put(i1.next(), i2.next()); } if (i1.hasNext() || i2.hasNext()); Entry<String, Integer> maxEntry = null; for (Entry<String, Integer> entry : map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; } }
2 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
查看您的代碼,沒有必要創建一個Map公正地尋找獲得最多獎牌的國家:
List<String> countryName = new ArrayList<>();
List<Integer> goldMedal = new ArrayList<>();
Integer maxMedals = goldMedal.stream().max(Integer::compareTo).get();
int maxMedalsIdx = IntStream.range(0, goldMedal.size())
.filter(i -> goldMedal.get(i).equals(maxMedals))
.findFirst().getAsInt();
countryName.get(maxMedalsIdx); // your answer
添加回答
舉報
0/150
提交
取消