[英]How to make integers comparable
我正在嘗試使用可比的接口對隨機生成的數組進行排序,但是卻收到錯誤消息:
不兼容的類型:int []無法轉換為Comparable []
int [] list;
list = new int[n];
for(int i=0;i<n;i++){
list[i]=(int)(1+n*Math.random());
}
sortingoutsorts.bubble(list);
}
private static void swap(Object [] list, int x, int y)
{
Object temp=list[x];
list[x]=list[y];
list[y]=temp;
}
public static void bubble(Comparable [] list)
{
boolean done=false;
while(!done)
{
done=true;
for(int i=0; i+1<list.length; i++)
if(list[i].compareTo(list[i+1])>0)
{ swap(list,i,i+1); done=false; }
}
}
int是原始數據類型,您不能在原始數據類型上實現Comparable。 您想使用它的Wrapper類Integer ,它已經實現了Comparable。
但是,如果您不想更改變量的類型,則可以更改
if(list[i].compareTo(list[i+1])>0)
至
if(list[i] > list[i+1])
並更改氣泡簽名以接受任何int數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.