为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

江户川乱折腾 2021-05-01 13:14:43
我需要编写一种方法,以返回金牌数量多于铜牌和银牌最多的国家名称。这就是我获得金牌的方式,但是如何转换为其他人可以执行的方法。    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


查看完整回答
反对 回复 2021-05-12
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信