[英]sorting using comparable java
我正在尝试对记录数组进行排序。 但是我收到“不是记录”错误。 方法getCt()在不同的类中,程序进行编译,并且数组为记录类型。 我真的不知道这段代码有什么问题。
哈希表:
public class HashTable {
private Record [] array;
private int size;
private int indexSize=0;
private boolean updated,found;
public HashTable(int m){
array= new Record[m];
size=0;
}
public void getCt() {
Arrays.sort(array);
// return array[0];
}
记录类:
import java.lang.Comparable;
import java.util.*;
public class Record implements Comparable {
private Integer count;
private DNSkey key;
public Record(DNSkey key) {
this.key = key;
count = 1;
}
public void update() {
count++;
}
public DNSkey getKey() {
return key;
}
public Integer getCount() {
return count;
}
public int compareTo(Object obj) {
if (!(obj instanceof Record)) {
throw new ClassCastException("Not a Record");
}
Record check = (Record) obj;
return getCount().compareTo(check.getCount());
}
public String toString() {
return getKey() + " " + getCount();
}
}
一种简单的方法是使用泛型:
public class Record implements Comparable<Record> {
...
public int compareTo(Record check){
return getCount().compareTo(check.getCount());
}
我的猜测是数组中的空项目。 “ null instanceof Class”将返回false。
这将引发异常:
Record[] array = new Record[] { new Record(...), null };
Arrays.sort(array);
使用泛型! 还有一个@Override注释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.