public void sort(){
//TO DO
int k = start;
int temp = 0;
for(int i=0; i<size-1; i++){
for(int j=0; j<size-1; j++){
if((cir[(k % cir.length)]) > cir[((k+1) % cir.length)]){
temp = cir[(k % cir.length)];
cir[k%cir.length] = cir[(k+1)%cir.length];
cir[(k+1)%cir.length] = temp;
}
k = (k+1)%cir.length;
}
}
}
//这里的cir []类型是对象。但为什么会出现这个问题?
答案 0 :(得分:0)
运营商&lt;,&gt;没有为TypeError: QRCode.drawBitArray is not a function
定义。
你会如何比较它们?
为您正在使用的对象的类定义方法。说Object
。然后根据您想要比较的方式实现它。这取决于greaterThan(YourObjectType otherobject)
。
修改即可。 实现注释中添加的Comparable接口。
答案 1 :(得分:0)
其他人已经提到了它,但我会重申:如果你想写一些通用的排序方法,你想要提供Comparator
或者让元素实现Comparable
。< / p>
使用泛型,您的方法可能如下所示:
public <T extends Comparable<T>> void sort(T[] array) { ... }
public <T> void sort(T[] array, Comparator<T> comparator) { ... }
这两种变体都要求用户提供一些代码,用于定义如何为相关对象定义<
,==
和>
(方法Comparable.compareTo(right)
或{{ 1}}返回负(通常为-1)int,0或正int(通常为1)以指示Comparator.compare(left, right)
,<
或==
)。
一般情况下,如果您可以定义自然(默认)排序,则可以使用>
,例如如果您与一群人一起工作,他们通常可能会按名称订购。
Comparable
更灵活,如果您不能或不想使用默认订单,则通常会使用
Comparator
。在这种情况下,您可以为每种情况提供一个比较器,例如:当您想要按价格或速度对汽车进行分类时,您需要提供一个比较器,在内部比较价格或速度。
请注意,这不适用于int
等原语。因此,您必须将它们转换为包装类,例如: Integer
或提供使用&#34; normal&#34;的自定义方法运算符。