2013-01-05 5 views
1

나는 함수 사이에 List<String[]> 전달하려고하지만 이상한 결과가 있어요.android 잘못된 ArrayList 값을 반환합니다

기능!

public List<String[]> tes(){ 

    List<String[]> test = new ArrayList<String[]>(); 

    String[] temp = {"a","b","c"}; 
    test.add(temp); 

    temp[0] = "d"; 
    temp[1] = "e"; 
    temp[2] = "f"; 

    test.add(temp); 

    return test; 
} 

추출.

String output = ""; 
    List<String[]> Results = db.tes(); 
    for (String[] row: Results) { 
     output = output + row[0] + " " + row[1] + "\n"; 
    } 

결과 :

d e 
d e 

나는 정말 그것을 얻지 않는다. a b d e이어야하지만 그렇지 않습니다.

답변

0

하나의 개체가 있습니다. 그것은 목록에있는 모든 객체가 당신의 혼자서의 임시 직원에 대한 링크를 가지고 있음을 의미합니다. 각 문자열에 new을 사용하면 결과가 달라집니다.

행운을 빈다.

0

예, 같은 개체 (임시)를 목록 테스트에 두 번 추가했습니다.

동일한 객체의 참조를 두 번 나열하는 list (테스트).

목록에 추가 한 후에도 객체의 값을 변경하려고하면 객체의 참조를 보유하고 있기 때문에 목록에도 변경이 발생합니다.

+0

고맙습니다. 그 대답은 제가 찾고 있던 것이 었습니다. 그것은 내 마음을 넘어 섰지 만 잘 모르겠습니다. 감사! – user1950770

+0

환영합니다. 도움이된다면 투표하십시오. –

관련 문제