Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有可比性的Java集合_Java - Fatal编程技术网

具有可比性的Java集合

具有可比性的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

我尝试创建一个集合。只是一个有3个名字的小集合,我想按字母顺序排序。我总是遇到这样的错误:线程“main”java.lang.AbstractMethodError中的异常:collection.compareTo(Ljava/lang/Object;)I.行中:Collections.sort(names);我应该做些什么来克服我的问题

 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不见了。