Java에서 HashMap을 복사하는 방법을 알아봅니다.
다음 원본을 복사해 봅니다.
HashMap<String, String> origMap = new HashMap<String, String>();
origMap.put("TITLE", "제목");
origMap.put("CONTENT", "내용");
origMap.put("WRITER", "홍길동");
System.out.println(origMap.toString());
1. 생성자를 이용해 복사합니다.
HashMap<String, String> copyMap = new HashMap<String, String>(origMap);
System.out.println(copyMap.toString());
2. clone() 을 이용해서 복사합니다.
HashMap<String, String> cloneMap = (HashMap<String, String>)origMap.clone();
System.out.println(cloneMap.toString());
3. putAll() 메소드를 이용해서 복사합니다.
HashMap<String, String> putMap = new HashMap<String, String>();
putMap.putAll(origMap);
System.out.println(putMap.toString());
4. Map.Entry를 이용해서 하나씩 복사합니다.
HashMap<String, String> entryMap = new HashMap<String, String>();
for (Map.Entry<String, String> entry : origMap.entrySet()) {
entryMap.put(entry.getKey(), entry.getValue());
}
System.out.println(entryMap.toString());
Java에서 Deep Copy 가 지원이 되지 않으므로 Deep Copy를 하기 위해서는 마지막 하나씩 복사하는 방식을 사용해서 새로운 객체를 생성해서 추가하는 방법을 사용합니다.
'프로그래밍 > 자바' 카테고리의 다른 글
Jsoup을 사용한 화이트 리스트 방식의 XSS(Cross-Site Script)공격 방어 (4) | 2019.02.26 |
---|---|
Java에서 JSON 문자열 생성 및 JSON 문자열을 자바 객체로 변환하기 (4) | 2019.01.18 |
Jsoup 예제 - 그누보드 크롤링 (0) | 2018.09.09 |
자바(Java)로 파일의 마임 타입(MIME Type) 확인하기 (0) | 2018.08.21 |
Java Generic사용법과 Generic에서의 와일드카드 (0) | 2018.08.12 |