저는 주로 C로 작성하지만이 프로젝트에서는 Java를 사용하고 있습니다. 후드 아래에서 Java가 무엇을하고 있는지 알고 싶습니다.Java는 ArrayList를 다시 처리하고 할당을 어떻게 처리합니까?
ArrayList<Integer> prevRow, currRow;
currRow = new ArrayList<Integer>();
for(i =0; i < numRows; i++){
prevRow = currRow;
currRow.clear();
currRow.addAll(aBunchOfItems);
}
목록을 9 사 prevRow = currRow 라인을 아니면 prevRow 지금 currRow과 같은 목록을 가리합니까? prevRow가 currRow과 같은 목록을 가리키는 경우에, 나는 옵션 1, 옵션 2 위의 코드에서 같은 일을해야합니까, 비슷한 질문에 .... 지우고 대신
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
}
을 새로운 ArrayList를를 작성해야합니까? 포인터로 "새로운"키워드로 생성 된 인스턴스의
고맙다 -
조나단
질문의 기본 사항은 배열 목록과 관련이 없습니다. Java에서 참조가 처리되는 방법에 대해 읽어야합니다. – polygenelubricants
http://stackoverflow.com/questions/2535410/java-immutable-object-question을 참조하십시오. – polygenelubricants