如何使比较器正确工作,现在它给出了错误的字符串长度



我在一个txt文件中有这些单词:

美洲虎黑猩猩野牛鲸土拨鼠野牛狐猴美洲豹骆驼蜥蜴狼熊壁虎猫鼬豹子貂皮野狗鲸鱼美洲豹大鼠狐猴狐猴大猩猩斑马龟asp狮子貘乌龟大猩猩猎豹野牛貂土拨鼠猎豹骆驼蛇旱獭斑马猎豹蜥蜴壁虎大猩猩狮子乌龟袋鼠鲸鱼企鹅牦牛猎豹老鼠美洲豹

我需要找到3个最长的单词并把它放在地图上。比较器类别为:

private static class SortByValue implements Comparator<String>{
public SortByValue(Map<String, Integer> map) {
this.map = map;
}
private Map<String, Integer> map;
@Override
public int compare(String o1, String o2) {
return (map.get(o1) >= map.get(o2)) ? -1 : ((map.get(o1) == map.get(o2)) ? 0 : 1);
}
}

我在这里没有显示的所有方法之后的输出应该是(数组中第一个最长的字符串(:

chimpanzee ==> 10
mongoose ==> 8
tortoise ==> 8

但比较器使它(错误,不能通过考试(:

chimpanzee ==> 10
tortoise ==> 8
kangaroo ==> 8

错误在哪里?请帮助

以下是如何制作一个按长度排序字符串的比较器,首先是最长的:

private static class SortByValue implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
return Integer.compare(o2.length(), o1.length());
}
}

应用到字符串列表中,最先出现的3个单词将是黑猩猩、猫鼬、乌龟。

相关内容

最新更新