본문 바로가기
Java

[Java] HashMap 설명과 여러 함수들 put(), size(), get(), replace(), remove(), clear(), isEmpty()

by dong_su 2023. 12. 20.

 

HashMap 특징

  1. 키-값 쌍 저장: HashMap은 키와 값의 쌍을 저장하는데 사용됩니다. 각 키는 고유해야 하며, 키에 해당하는 값은 중복될 수 있습니다.
  2. Null 허용: HashMap은 키와 값에 null을 허용합니다. 즉, null 값을 가진 키나 값이 저장될 수 있습니다.
  3. 빠른 검색 속도: 해시 테이블을 기반으로 하기 때문에 키를 사용한 검색, 삽입, 삭제 연산이 평균적으로 O(1)의 시간 복잡도를 가집니다.
  4. 순서 보장 안됨: HashMap은 요소들의 순서를 보장하지 않습니다. 따라서 특정 순서로 요소에 접근하려면 LinkedHashMap과 같은 순서를 보장하는 자료구조를 사용해야 합니다.
HashMap<String, String> phoneMap = new HashMap<>();

 

-> HashMap 인스턴스 생성 후 여러 함수들을 보자.


요소 추가하는 함수 put()

phoneMap.put("model", "iPhone 13 mini");
phoneMap.put("year", "2021");
phoneMap.put("color", "black");

길이 구하는 함수 size()

int size = phoneMap.size();
System.out.println(size);

// 결과 : 3

요소(데이터) 억세스 하는 함수 get()

String data = phoneMap.get("model");

// 결과 : iPhone 13 mini

 

-> get() 함수 인자에 키에 해당하는 값을 넣으면 해당 키의 value값을 반환한다. 

 

 

모든 요소 확인하려면 for문을 쓰면 된다.

for(int i=0; i<phoneMap.values().toArray().length; i++) {
    System.out.println(phoneMap.values().toArray()[i]);
}

// 모든 요소 확인(for-each문)
for(Object value : phoneMap.values().toArray()){
    System.out.println(value);
}

// 결과는 동일하게 black, 2021, iPhone 13 mini

 

-> hashmap.values().toArray() 하면 모든 value값이 나온다.


타입 확인(HaspMap 한정이 아니라 자바 전체 가능) 하는 함수 getClass().getName()

System.out.println(phoneMap.values().toArray().getClass().getName());

// 결과 : [Ljava.lang.Object;

요소 수정하는 함수 replace()

phoneMap.replace("color", "red");

 

-> key 값이 color인 요소의 value를 red로 수정


요소 제거하는 함수 remove()

phoneMap.remove("year");

 

-> key 값이 year인 요소를 삭제


모든 요소 제거하는 함수 clear()

phoneMap.clear();

HashMap의 요소가 비어 있는지 확인하는 함수 Empty()

System.out.println(phoneMap.isEmpty());

// 결과 : true

 

-> 반환 타입은 Boolean이다.