2016-10-29 2 views
0

여기에 내가 작성한 코드의 일부가 있습니다. 출력물이 정말 혼란 스럽습니다. 코드가 정확하다고 느낍니다. , [[0.0,0.25,0.50], [0.0 : I 출력이처럼되고 싶기 때문에Java에 갇힌 목록 목록

0 
1 
2 
-- 
0 
1 
2 
3 
-- 
0 
1 
2 
3 
4 
-- 
[[0.0, 0.25, 0.5, 0.75, 1.0], [0.0, 0.25, 0.5, 0.75, 1.0], 
[0.0, 0.25, 0.5, 0.75, 1.0]] 

난 정말 혼란 스러워요 : 여기

List<List<Float>> deg_grp = new ArrayList<>(); 
List<Float> tempo = new ArrayList<>(); 
int u = 3; 
for (int y = 0; y < 3; y++) { 
    tempo.clear(); 
    for (int p = 0; p < u; p++) { 
     System.out.println(p); 
     tempo.add(p * 0.25f); 
    } 
    u++; 
    System.out.println("--"); 
    deg_grp.add(tempo); 
} 
System.out.println(deg_grp); 

은 내가 가진 출력 [0.0,0.25,0.50,0.75,1.0]]

친절하게 도와주세요. 미리 감사드립니다 :)

답변

1

첫 번째 루프에서 템포를 초기화하십시오. 이를 지우는 것은 올바른 방법이 아닙니다. 당신은 항상 같은 템포 배열을 사용하기 때문에. 목록의 모든 요소가 자동으로 변경됩니다. 목록 작동 방식을 확인하십시오.

1

항상 같은 목록을 사용하고 있습니다. 따라서 tempo을 지우고 항목을 추가하면 모든 항목이 deg_grp으로 바뀝니다.

첫 번째 for 루프에서 tempo을 지우는 대신 새 목록을 지정해야합니다.