"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > HashMap의 기본 깨기: Java 개발자를 위한 주요 개념

HashMap의 기본 깨기: Java 개발자를 위한 주요 개념

2024-11-06에 게시됨
검색:419

Cracking the Basics of HashMap: Key Concepts for Java Developers

소개

HashMap 클래스를 이해하는 것은 실제 애플리케이션과 인터뷰 모두에서 개발자에게 필수적입니다. 이 게시물에서는 HashMap에서 키-값 쌍을 삽입, 업데이트 및 관리하는 방법을 살펴보겠습니다. 이 지식은 또한 HashSet에 대해 자세히 알아보고 두 컬렉션이 어떻게 관련되는지 알아보는 다음 기사의 토대를 마련할 것입니다.


해시맵이란 무엇입니까?

HashMap은 데이터를 키-값 쌍으로 저장하여 효율적인 조회, 업데이트 및 삭제를 가능하게 합니다. 다음은 몇 가지 중요한 특징입니다:

  • 키는 고유합니다: 키가 이미 존재하는 경우 값은 교체됩니다.
  • 값이 중복될 수 있습니다: 동일한 값이 다른 키에 매핑될 수 있습니다.
  • put(), get(), 제거()와 같은 작업의 평균 시간 복잡도는 O(1).

코드 조각을 통해 이러한 동작을 더 자세히 살펴보겠습니다.


1. put()을 사용하여 키-값 쌍 삽입

put() 메소드는 키-값 쌍을 맵에 추가합니다. 단, 키가 이미 존재하는 경우 이전 값이 대체됩니다.

Map map = new HashMap();

// Insert two key-value pairs
map.put(1, 2);
map.put(2, 3);

설명:

여기에 두 개의 항목을 삽입합니다:

  • 키 1은 값 2에 매핑됩니다.
  • 키 2는 값 3에 매핑됩니다.

이제 동일한 키로 새 값을 삽입하려고 하면 어떻게 되나요?


2. 중복 키 처리

// Replacing an existing value
map.put(2, 4); // Key 2 already exists, so the value is replaced.

키 2는 값 3으로 이미 존재했지만 put(2, 4)를 호출하면 새 값 4가 이전 값을 대체합니다. 이것이 HashMap의 기본 동작입니다.

중요한 이유

많은 상황에서 키가 이미 존재하는 경우 값을 바꾸는 것을 원하지 않을 수 있습니다. 주의 깊게 처리하지 않으면 데이터 손실이 발생할 수 있습니다. 이러한 경우에는 putIfAbsent() 메소드를 사용할 수 있습니다.


3. putIfAbsent()로 덮어쓰기 방지

// Ensuring value isn't replaced if key exists
map.putIfAbsent(2, 5);

putIfAbsent() 메소드는 지정된 키가 맵에 아직 존재하지 않는 경우에만 값을 삽입합니다. 키 2는 이미 값 4와 연결되어 있으므로 여기에서 메서드를 호출해도 아무런 효과가 없습니다.


4. 최종 지도 인쇄

System.out.println(map); // Output: {1=2, 2=4}

출력에서는 putIfAbsent()가 기존 값을 덮어쓰지 않았기 때문에 키 2가 값 4를 유지함을 보여줍니다.


주요 방법 요약

  1. put(K key, V value): 주어진 키의 값을 삽입하거나 대체합니다.
  2. putIfAbsent(K 키, V 값): 키가 없는 경우 값을 삽입합니다.

결론

HashMap 클래스는 키-값 쌍을 저장하는 Java의 강력한 도구이지만 중복 키의 동작을 이해하는 것이 중요합니다. put()과 putIfAbsent()를 언제 사용해야 하는지 알면 데이터 손실을 방지하고 효율적인 코드를 작성하는 데 도움이 됩니다. 기본 작업에 대한

O(1) 평균 시간 복잡도를 갖춘 HashMap은 성능이 중요한 여러 작업에 적합한 선택입니다.

다음 게시물에서 HashSet을 살펴보고 내부적으로 HashMap을 사용하여 고유성을 보장하는 방법을 기대해 주세요!


관련 게시물

  • 자바 기초

  • 어레이 인터뷰 필수사항

  • Java 메모리 필수사항

즐거운 코딩하세요!

릴리스 선언문 이 기사는 https://dev.to/arshisaxena26/cracking-the-basics-of-hashmap-key-concepts-for-java-developers-3ghb?1에 복제되어 있습니다. 침해가 있는 경우에는 Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3