2011-12-21 4 views
2

자바에서 LinkedHasMap 복제의 가장 좋은 무엇을 복제?는 자바의 LinkedHashMap

Map<String, Object> clonedMap = new LinkedHashMap<String, Object>(originalMap); 

을하지만 그것은 작동하지 않았다 :

나는 이미 시도했다.

+0

왜 작동하지 않습니까? 무엇을하고 싶니? – SLaks

+6

"작동하지 않음"을 정의하십시오. '새로운지도 (지도)'는 "얕은"사본을 만듭니다 - 참고 문헌은 동일합니다. "깊은"사본 (모든 키와 값이 * 복제 * 된 곳)을 의미하는 경우 대답은 키와 값 클래스의 구현에 전적으로 의존합니다. – Bohemian

+1

보헤미안 (Bohemian)이 말했듯이, 깊은 사본은 당신이 겪은 것 같습니다. [here] (http://stackoverflow.com/questions/64036/how-do-you-make-a-deep-copy-of-an-object-in-java)를 참조하십시오. – threenplusone

답변

1

깊은 사본을 얻을 수있는 가장 쉬운 방법은지도를 직렬화하고 직렬화하는 것입니다. 더 빠른 방법은 전체지도를 생각하고 각 키/값을 복제 한 다음 새지도에 배치하는 것입니다. 경우

당신은 얕은 사본이 필요합니다 - 당신의 조각이 제대로 그 않습니다.

+0

비록 직렬화가 간단한 솔루션이지만, 뭔가 자동적으로 원한다면, 나는 반사를 사용하고 싶습니다. 그러나 Cloneable 인터페이스 (http://docs.oracle.com/javase/6/docs/api/java/lang/Cloneable.html)를 복제 가능한 모든 클래스에 구현하는 것이 더 좋습니다. –