Java 我需要写一个方法,返回金牌数超过铜牌数,然后是银牌数最多的国家的名称

Java 我需要写一个方法,返回金牌数超过铜牌数,然后是银牌数最多的国家的名称,java,Java,我需要写一个方法,返回金牌数超过铜牌数,然后是银牌数最多的国家的名称。这就是我为金牌所做的,但如何转换为其他人所用的方法 查看您的代码,不需要创建地图来查找奖牌最多的国家: List<String> countryName = new ArrayList<>(); List<Integer> goldMedal = new ArrayList<>(); Integer maxMedals = goldMedal.stream

我需要写一个方法,返回金牌数超过铜牌数,然后是银牌数最多的国家的名称。这就是我为金牌所做的,但如何转换为其他人所用的方法


查看您的代码,不需要创建地图来查找奖牌最多的国家:

    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

您可以为此使用比较器链接

您可以自己实现比较器链


您可以使用已经实现的comparator chain类

将goldMedal替换为bronzeMedal,然后首先创建一个良好的数据结构来存储输入。另外请注意,可以有多个国家拥有最多的金、银和铜牌。在此处发布链接会有所帮助,但从链接中获取必要的信息并写出答案会更好地回答问题。请阅读
    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