-1
我有以下接口:如何正确使用Java中字符串的Comparable?
public interface Generator <T> {
public T next();}
,并且有几个方法和字段的类。我将按顺序编写我的代码,以便您了解我的探索。 类:
public class Example implements Comparable <Example>{}
这个类有像字段:
private String name;
private static int count;
private int ID = count ++;
private static char [] chars = "qwertyuiopasdfghjklzxcvbnm".toCharArray();
构造:
public Example (String name){
this.name = name;
}
方法,它返回有关类信息:
public String toString(){
return "ID #" + ID + ", name: " + name;
}
方法机生产线CES新类:
public static Generator <Example> generator(){
return new Generator <Example>(){
public Example next() {
Random rand = new Random();
StringBuilder str = new StringBuilder();
for (int i=0; i!=10; i++)
str.append(chars[rand.nextInt(chars.length)]);
return new Example (str.toString());
}
};
}
,这令人费解的方法,我无法理解:产生
public int compareTo(Example o) {
return (this.name < o.name ? -1 : (this.name == o.name ? 0 : 1)); // It does not works... :(
}
通用法阵:
public static <T> List <T> array (List <T> list, Generator <T> gen, int size){
for (int i=0; i!=size; i++){
list.add(gen.next());
} return list;
}
,当我尝试比较主要方法排序阵列:
public static void main (String [] args){
List <Example> list = new ArrayList <Example>(); // Created the array;
array (list, generator(), 10); // Filled the array;
Collections.sort(list); // Doesn't work :(
}
我很抱歉我的英语。英语不是我的母语。 谢谢你compareTo()
实现您与<
操作是无效的比较字符串:)
非常感谢!:) –