我遇到了一个我不理解的问题。
在Table类中添加方法时,我想使用以下代码:
感谢您的帮助。
Arrays.binarySearch(asso, (a,b) -> a.cle.compareTo(b.cle));
我有一个包含键值对的Association对象数组,命名为asso。
当我使用String类型执行这段代码时,会出现一个错误“无法找到符号”,指的是compareTo(Object)方法。
以下是我的代码:
测试:
Table<String,String> table0 = new Table<String,String>(10);
table0.add("1","int");
方法:
import java.util.Arrays;
public class Table<C,V>{
Association[] asso;
public Table(int n){
asso = new Association[n];
}
public void add(C cle, V valeur){
asso[0] = new Association<C,V>(cle,valeur);
Arrays.sort(asso, (a,b) -> a.cle.compareTo(b.cle));
}
public class Association<C,V>{
public C cle;
public V valeur;
public Association(C cle,V valeur){
this.cle = cle;
this.valeur = valeur;
}
}
}
还有错误信息:
../src/Table.java:15: error: cannot find symbol
Arrays.sort(asso, (a,b) -> a.cle.compareTo(b.cle));
^
symbol: method compareTo(Object)
location: variable cle of type C
where C is a type-variable:
C extends Object declared in class Table.Association
感谢您的帮助。
class Association<C extends Comparable<C>,V>
class Table<C extends Comparable<C>,V>
但现在我遇到了以下错误:`Exception in thread "main" java.lang.NullPointerException
at Table.lambda$ajout$0(Table.java:15) at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) at java.util.TimSort.sort(TimSort.java:220) at java.util.Arrays.sort(Arrays.java:1438) at Table.ajout(Table.java:15) at main.main(main.java:546)` - takesumaAssociation
实例和9个空引用的数组进行排序。此外,您的add
方法总是分配给数组的第一个索引,这是不正确的。 - Eran@NotNull
做什么? - EranArrays.sort(asso, Comparator.nullsLast(Comparator.comparing (Association::getCle)));
(并在 Association 类中添加一个 getter 方法getCle()
)。 - Eran