[Java]Map의 put과 replace 차이

LeeYulhee·2023년 8월 7일
0

👉기본 전제


  • Map의 key는 중복될 수 없음
  • put 메서드와 replace 메서드는 return 값이 있어서 지정된 키의 이전 값을 반환
    Map<Integer, String> map = new HashMap<>(); // Map 생성
    
    String s = map.put(1, "source"); // Map에 put을 실행했을 때, return 값을 String s에 대입
    
    System.out.println(s); // s를 출력
    
    s = map.put(1, "hotsorce"); // Map에 중복 key로 put을 실행했을 때, return 값을 String s에 대입
    
    System.out.println(s); // s를 출력
    • 출력 값 : null, source



👉put과 replace의 차이


  • 📌 put(K key, V value)의 기본 동작
    • 지정된 키와 값을 맵에 추가하거나 이미 존재하는 키의 현재 값을 새 값으로 대체
    • 이전 값이 있었다면 그 값을 반환하고, 없었다면 null을 반환
    • put은 키가 존재하든 그렇지 않든 값을 저장하거나 대체
  • 📌 replace(K key, V value)의 기본 동작
    • 지정된 키가 맵에 없으면 아무 것도 하지 않음
    • 지정된 키가 이미 맵에 있을 경우 해당 키의 현재 값을 새 값으로 대체
    • 이전 값이 있었다면 그 값을 반환하고, 없었다면 null을 반환
    • replace는 맵에 키가 이미 존재해야만 값이 대체
  • 📌 추가적인 내용
    • replace 메서드는 replace(K key, V oldValue, V newValue)라는 또 다른 오버로드 버전이 있음
      • 지정된 키의 현재 값이 oldValue와 일치할 경우에만 새 값으로 대체



👉결론


  • 데이터를 맵에 추가하거나 이미 존재하는 키의 값을 무조건 대체하려는 경우 put을 사용
  • 키가 이미 존재할 경우에만 값을 대체하려는 경우 replace를 사용
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글