지도에 목록 삽입 기능을 사용하면서 삽입 동작을 이해할 수 없습니다. 삽입하여리스트의 내용을 변경하는 방법에 대한 다음 맵에리스트의 삽입을 수행하면서삽입시지도 및 목록 값의 모호성 :
public class TestList {
public static void main(String[] args) {
String strarray[] = new String[5];
for(int i = 0; i < 5; i++){
strarray[i] = "Demo" + i;
}
Map<Integer, List<String>> cluesByText = new HashMap<Integer, List<String>>();
int j = 0;
for (String str : strarray) {
System.out.println(str);
List<String> s = cluesByText.get(str);
if (s == null) {
s = new LinkedList<String>();
cluesByText.put(j, s);
}
s.add(str);
s.add(str);
s.add(str);
s.remove(1);
// why it is storing without doing cluesByText.put(j,s);
j++;
}
//output is:
System.out.println(cluesByText);
}
}
문제/삭제 작업이를 이전 라인 맵에 저장된리스트에 반영 받고있다.
최종 출력 오는 인쇄 맵 내용은입니다.
{0=[Demo0, Demo0], 1=[Demo1, Demo1], 2=[Demo2, Demo2], 3=[Demo3, Demo3], 4=[Demo4, Demo4]}
목록의 상태가 이미지도에 저장되어있는 이유는 무엇입니까?
삽입 한 목록의 값이 여전히 원래 목록의 값을 가리키고 있습니다. –
질문과 관련이 없지만 코드가 의미가 없습니다. 'cluesByText.get (str)'은 Map의 키가 String이 아닌 정수이기 때문에 항상 null을 반환합니다. – Eran