【发布时间】:2011-02-16 04:54:10
【问题描述】:
我主要用 C 语言编写,但我在这个项目中使用 Java。我想知道 Java 在幕后做了什么。
ArrayList<Integer> prevRow, currRow;
currRow = new ArrayList<Integer>();
for(i =0; i < numRows; i++){
prevRow = currRow;
currRow.clear();
currRow.addAll(aBunchOfItems);
}
prevRow = currRow 行是复制列表还是 prevRow 现在指向与 currRow 相同的列表?如果 prevRow 指向与 currRow 相同的列表,我应该创建一个新的 ArrayList 而不是清除....
private ArrayList<Integer> someFunction(ArrayList<Integer> l){
Collections.sort(l);
return l;
}
main(){
ArrayList<Integer> list = new ArrayList<Integer>(Integer(3), Integer(2), Integer(1));
list = someFunction(list); //Option 1
someFunction(list); //Option 2
}
在类似的问题中,选项 1 和选项 2 在上面的代码中做同样的事情吗?
谢谢-
乔纳森
【问题讨论】:
-
您问题的基本原理与数组列表无关。您应该阅读 Java 中如何处理引用。