如果你只想使用數組,你可以這樣做:
做一個臨時(輔助)陣列,其中包括在tabT
迄今爲止看到的每一個元素。然後,在打印該值之前,檢查它是否沒有出現在幫助程序數組(tmp)中。
例如,如果您有值tabT
,你不希望打印的每一個不止一次:
int[] tabT = {1,2,3,1,1,2,6,7,2,7,1};
int[] tmp = new int[tabT.length];
boolean flag;
for (int i = 0; i < tabT.length; i++) {
tmp[i] = tabT[i];
flag = true;
for (int j = 0; j < tmp.length; j++)
if (tabT[i] == tmp[j] && i!=j) {
flag = false;
}
if(flag)
System.out.println(tabT[i]);
}
輸出:[1,2,3,6,7]
您可以將這個想法很容易地應用到你的程序,你就會有每個元素打印一次:
Cars[] tmp = new Cars[tabT.length]; //Assuming tabT is from type Cars[]
boolean flag = true;
for (int i = 0; i < tabT.length; i++) {
tmp[i] = tabT[i];
if (tabT[i] != null) {
for (int j = 0; j < tmp.length; j++)
if (tabT[i].getCar().equals(tabT[j].getCar()) && i!=j)
flag = false;
if(flag)
System.out.println(tabT[i].getCar());
}
}
這將打印每節車廂(或任何你打印)只有一次。
謝謝,但是「tmp」在這裏不是空嗎?我怎樣才能刪除這個數組呢? – mpluse 2013-03-11 20:49:29
我編輯了我的答案 – Maroun 2013-03-11 20:50:33
這裏有個問題 if(tabT [i] .getCar( ).equals(tabT [j] .getCar())&& i!= j) – mpluse 2013-03-11 21:05:50