簡體   English   中英

如何使整數具有可比性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM