按名字升序排列报错
sort处提示:
The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (List<Cat>, NameComparator)
3
收起
正在回答
2回答
你好!你的代码在我这里是可以运行正确的,调试后的所有代码如下。建议同学下次贴代码时也像我一样,把代码忒到回答里,不截图,这样方便我们快速为你解答。
Cat类:
package com.imooc.sort; public class Cat { private String name; private int age; private String specis; public Cat(){} public Cat(String name, int age, String specis) { super(); this.name = name; this.age = age; this.specis = specis; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSpecis() { return specis; } public void setSpecis(String specis) { this.specis = specis; } @Override public String toString() { return "Cat [name=" + name + ", age=" + age + ", specis=" + specis + "]"; } }
NameComparator类:
package com.imooc.sort; import java.util.Comparator; public class NameComparator implements Comparator<Cat> { @Override public int compare(Cat arg0, Cat arg1) { // 按宠物猫名字进行升序排列 // 如果降序排列:arg1.getName().compareTo(arg0.getName()); String name1=arg0.getName(); String name2=arg1.getName(); int n= name1.compareTo(name2); return n; } }
NameTest类:
package com.imooc.sort; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class NameTest { public static void main(String[] args) { Cat huahua=new Cat("huahua",3,"英国短毛猫"); Cat fanfan=new Cat("fanfan",5,"中华田园猫"); Cat maomao=new Cat("maomao",1,"中华田园猫"); List<Cat> catList=new ArrayList<Cat>(); catList.add(huahua); catList.add(fanfan); catList.add(maomao); System.out.println("按名字升序排序前:"); for(Cat cat:catList){ System.out.println(cat); } Collections.sort(catList,new NameComparator()); System.out.println("按名字升序排序后:"); for(Cat cat:catList){ System.out.println(cat); } } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星