我需要编写一种方法,返回金牌数量多于铜牌和银牌的国家名称

时间:2018-07-03 18:49:23

标签: java

我需要编写一种方法,返回金牌数量多于铜牌和银牌最多的国家名称。这是我获得金牌的方式,但是如何转换为其他人可以执行的方法。

    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 个答案:

答案 0 :(得分:0)

查看您的代码,无需创建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

答案 1 :(得分:0)