2014-12-20 1 views
0

나는 다음과 같은 코드가의 내용을 삭제합니다. podmienkyOblast.clear() 앞에 podmienky.get("index").size()을 입력하면 6을 반환합니다. 그러나 podmienkyOblast.clear() 이후에 podmienky.get("index").size()을 입력하면 0을 반환합니다. 내가 해시 테이블에 뭔가 넣으면 실제 내용을 추가 할 것입니다. 하지만 볼 수 있듯이 arrayList에 대한 참조 만 저장하고 있습니다. 내가 잘못? 이 작업을 어떻게해야합니까?Arraylist.clear는() 해시 테이블

덕분에 앞으로

+5

예, 단지 참조를 저장합니다. 복사본을 만들어 직접 저장해야합니다. –

+0

그것이 정상적으로 작동하는 방법입니다. "이 일을 어떻게해야합니까?"란 무엇을 의미합니까? – August

답변

0

에 당신은 Hashtable에 당신의 ArrayList에 대한 참조를 넣어. ArrayList의 값을 테이블에 추가하려면 목록의 요소를 반복해야합니다. 개체를 복사해야하는 경우 개체 참조

for(Object element : podmienkyOblast) { 
    // TODO generate a key for your value here 
    String key = "..."; 
    podmienky.put(key, element); 
} 
0

자바 거래, 당신은 cloning (딥 카피 a.k.a) 고려해야합니다.

또한 구현 위에 인터페이스 호의 그래서 List 대신 ArrayList를 사용한다.