我碰到這個問題我也很沮喪。這裏是正在發生的事情的要點:Arraylist當它不應該被分類?
import static java.lang.System.*;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(19);
list.add(442);
list.add(3);
list.add(1);
list.add(9);
out.println(list.toString());
out.println(bubbleSort(list));
out.println(list.toString());
}
public static int bubbleSort(ArrayList<Integer> num) {
int j;
boolean flag = true;
int temp;
while(flag) {
flag = false;
for(j = 0; j < num.size() - 1; j++) {
if(num.get(j) > num.get(j + 1)) {
temp = num.get(j);
num.set(j, num.get(j + 1));
num.set(j + 1, temp);
flag = true;
}
}
}
return num.get(0);
}
}
輸出是:
[12, 19, 442, 3, 1, 9] 1 [1, 3, 9, 12, 19, 442]
爲什麼當我打電話的方法bubbleSort()
ArrayList的list
越來越排序?應該不是的方法制作的list
實例時,我稱其爲bubbleSort(list)
,而不是排序list
本身是它的範圍之內?我只想bubbleSort
通過製作實例的list
,使用冒泡排序該實例,並返回一個實例的第一個值來獲得list
的最小值。我錯過了真正明顯的東西嗎?我已經得到了真的很累從我沮喪過這個問題......
重複? https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – assylias
在Java中,你用'new'關鍵字創建了一個新實例,並且你只做了它一次在你的代碼片段中,在main()中。 –
@assylias:我們確實需要一個「什麼是對象引用」的規範,它根本不會涉及整個傳遞過程,因爲它與人們不理解這個問題的95%是無關的。 :-) –