Java新增功能。試圖理解宣佈我的ArrayList
爲<Integer>
。在我的方法中,我仍然必須將我的.get()
結果作爲int
投入使用,否則它將返回Object
。例如:(int) deliv.get(j)
int Sort方法的for
循環。有沒有辦法避免這種情況,或者我的代碼是否是正確的方法?
問題:假設數組可以更改大小,因此不只是使用基本數組。所有的數字都應該是成對的,尋找唯一缺少成對值的數字。我對數組進行排序,然後遍歷這些對以查找不匹配。謝謝。Java ArrayList get()爲整數而非對象
import java.util.*;
class StolenDrone{
public static void main(String[] args){
ArrayList<Integer> deliv_id = new ArrayList<>();
deliv_id.add(99);
deliv_id.add(13);
deliv_id.add(4);
deliv_id.add(5);
deliv_id.add(8);
deliv_id.add(99);
deliv_id.add(8);
deliv_id.add(5);
deliv_id.add(4);
System.out.println("Array is: " + deliv_id);
sort(deliv_id);
System.out.println("Array is: " + deliv_id);
int unique = findUnique(deliv_id);
System.out.println("Unique ID is: " + unique);
}
//Sort ArrayList into increasing order
static void sort(ArrayList deliv){
int temp;
for(int i = 0; i<deliv.size();i++){
for (int j=0; j<deliv.size()-1;j++){
if((int) deliv.get(j)> (int) deliv.get(j+1)){
temp = (int) deliv.get(j+1);
deliv.set(j+1, deliv.get(j));
deliv.set(j, temp);
}
}
}
}
//check pairs in ArrayList to find unique entry
static int findUnique(ArrayList deliv){
for(int i = 0; i<deliv.size()-1;i+=2){
if(deliv.get(i) == null){
return -1; //no unique
}
if((int) deliv.get(i) != (int) deliv.get(i+1)){
return (int) deliv.get(i);
}
}
return -1;
}
}
您參考(又名對象)類型,如整數與原始類型如int混合起來。使用'ArrayList'使'get()'返回Integer;和Integer和int不一樣,你需要「投射」。 –
GhostCat
應該是ArrayList deliv_id = new ArrayList ();那麼不需要投。使用Collections.sort(deliv_id)對數組進行排序 –
Godwin