반응형
Java map 추가 및 수정하는 방법
기본적인 부분이지만 기본적인것을 깜박하고 많은시간을 버릴 수가 있다.
우선 기본적인 get,put 이다.
LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
map.put("1",1); //추가
int val = (int)map.get("1"); //가져오기
System.out.println(val);
값을 가져와서 변경할 때이다.
아래와 같이 할 경우에는 map의 주소를 저장하는것이기 때문에 해당 map을 변경하여도
이전 map의 값도 변경하게 된다.
import java.util.LinkedHashMap;
public class MainApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedHashMap<String, Object> newMap = new LinkedHashMap<String, Object>();
newMap.put("1", 1);
newMap.put("2", 2);
newMap.put("3", 3);
newMap.put("4", 4);
newMap.put("5", 5);
LinkedHashMap<String, Object> newMap2 = new LinkedHashMap<String, Object>();
newMap2 = newMap;
newMap2.put("1", (int)newMap2.get("1")+5);
for (String key : newMap2.keySet()){
System.out.println("key : " + key + "val : " + newMap2.get(key));
}
System.out.println("\n");
for (String key : newMap.keySet()){
System.out.println("key : " + key + "val : " + newMap.get(key));
}
}
}
결과값.
key : 1val : 6
key : 2val : 2
key : 3val : 3
key : 4val : 4
key : 5val : 5
key : 1val : 6
key : 2val : 2
key : 3val : 3
key : 4val : 4
key : 5val : 5
해당 맵의 값을 변경하지 않을경우에는 map의 주소를 저장하는것이 아니라, map의 값을 저장해주어야된다.
아래와 같은 방법을 사용하면 된다.
import java.util.LinkedHashMap;
public class MainApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedHashMap<String, Object> newMap = new LinkedHashMap<String, Object>();
newMap.put("1", 1);
newMap.put("2", 2);
newMap.put("3", 3);
newMap.put("4", 4);
newMap.put("5", 5);
LinkedHashMap<String, Object> newMap2 = new LinkedHashMap<String, Object>();
newMap2.putAll(newMap);
newMap2.put("1", (int)newMap2.get("1")+5);
for (String key : newMap2.keySet()){
System.out.println("key : " + key + "val : " + newMap2.get(key));
}
System.out.println("\n");
for (String key : newMap.keySet()){
System.out.println("key : " + key + "val : " + newMap.get(key));
}
}
}
결과값.
key : 1val : 6
key : 2val : 2
key : 3val : 3
key : 4val : 4
key : 5val : 5
key : 1val : 1
key : 2val : 2
key : 3val : 3
key : 4val : 4
key : 5val : 5
반응형
'개발 > Java' 카테고리의 다른 글
[Java] jsp Servlet 통신간의 한글깨짐 (0) | 2020.11.18 |
---|---|
[Java] POST 방식으로 간단하게 REST API 호출하는 방법 (0) | 2020.08.14 |
[Java] cannot write to a URLConnection if doOutput 에러 (0) | 2020.08.14 |
[Java] java.lang.Long cannot be cast to java.lang.Integer (2) | 2020.07.30 |
[Java] 자바 최소값 ~ 최대값 사이 랜덤 난수 생성 (0) | 2020.06.23 |