具有可比性的Java集合
我尝试创建一个集合。只是一个有3个名字的小集合,我想按字母顺序排序。我总是遇到这样的错误:线程“main”java.lang.AbstractMethodError中的异常:collection.compareTo(Ljava/lang/Object;)I.行中:Collections.sort(names);我应该做些什么来克服我的问题具有可比性的Java集合,java,Java,我尝试创建一个集合。只是一个有3个名字的小集合,我想按字母顺序排序。我总是遇到这样的错误:线程“main”java.lang.AbstractMethodError中的异常:collection.compareTo(Ljava/lang/Object;)I.行中:Collections.sort(names);我应该做些什么来克服我的问题 public class collection implements Comparable<collection> { private St
public class collection implements Comparable<collection> {
private String name;
public collection(String name){
this.name= name;
}
public String getName(){
return name;
}
public int compareΤο(collection c){
return this.getName().compareTo(c.getName());
}
}
public class collectionList {
private ArrayList <collection> names;
public collectionList(){
names = new ArrayList <collection>();
}
public void populate() {
collection c1 = new collection("Monica Rows");
names.add(c1);
collection c2 = new collection("Peter Walker");
names.add(c2);
collection c3 = new collection("Jack Miller");
names.add(c3);
}
public void sortBy(){
Collections.sort(names);
}
public String names(){
String s="";
for(collection c: names){
s+=c.getName()+ "\n";
}
return s;
}
}
public class collectionMain {
public static void main(String[] args){
collectionList c = new collectionList();
c.populate();
System.out.println(c.names());
c.sortBy();
System.out.println(c.names());
}
公共类集合实现了可比较的{
私有字符串名称;
公共集合(字符串名称){
this.name=name;
}
公共字符串getName(){
返回名称;
}
公共intο(集合c){
返回这个.getName().compareTo(c.getName());
}
}
公共类集合列表{
私有数组列表名称;
公共收藏列表(){
names=newarraylist();
}
公共空白填充(){
集合c1=新集合(“行”);
名称。添加(c1);
集合c2=新集合(“彼得·沃克”);
名称。添加(c2);
集合c3=新集合(“杰克·米勒”);
名称。添加(c3);
}
公共空间排序(){
集合。排序(名称);
}
公共字符串名称(){
字符串s=“”;
用于(集合c:名称){
s+=c.getName()+“\n”;
}
返回s;
}
}
公共类集合主{
公共静态void main(字符串[]args){
collectionList c=新的collectionList();
c、 填充();
System.out.println(c.names());
c、 sortBy();
System.out.println(c.names());
}
}compareTo方法的名称使用unicode字符。“T”是unicode 0x03A4,“o”是0x03BF。它们应该是0x0054和0x006F。您可以使用以下链接检查您的字符
忽略样式问题,您将与使用无效字符的方法进行比较: 比较%CE%A4%CE%BF
将其复制并粘贴到在线url编码器中我尝试更改我的字符,但没有任何更改从我的评论中复制并粘贴[compareTo],然后查看是否可以修复它。你可能需要检查操作系统中的键盘设置,或者找到一个文本编辑器来强制使用ascii。尼尔,我很好奇你是如何得出这个结论的!我使用Intellij作为IDE,它告诉我compareTo不见了。