Java에서 HashMap 복사하기 와 모든 키, 값을 리스트 하기

프로그래밍/자바 2019. 1. 15. 00:41
반응형

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를 하기 위해서는 마지막 하나씩 복사하는 방식을 사용해서 새로운 객체를 생성해서 추가하는 방법을 사용합니다.

반응형

댓글을 달아 주세요