Java - HashMap

컴퓨터/Java

728x90
반응형

HashMap 

Java 컬렉션 프레임 워크에서 제공하는 HashMap은 Map인터페이스를 상속받아 구현된 클래스입니다. 

이 상속받은 HashMap은 아래와 같은 특징으로 구성되어 잇습니다.

  • Key와 Value의 쌍으로 구성되어있다.
  • Key값은 중복되지 않는다.
    • 만약 저장된 Key와 동일한 값을 추가한다면 기존의 값은 없어지고 새로운 Key와 Value로 대체됩니다.
  • Hashing 알고리즘의 적용되어있어, Key와 Value가 메모리상에 불규칙적으로 저장됩니다. 따라서 메모리 상의 위치를 알 수 없습니다.
  • 대신 많은 양의 데이터를 검색하는 데 있어 효율적입니다.

 

 

Java - 컬렉션프레임워크(CKP)

Collection framework Java의 기본적인 문법에 익숙해진다면 그다음 마주하게 될 녀석이 바로 이 컬렉션 프레임워크입니다. 말은 엄청나게 거창하지만 기본적으로 Java에서 자주 사용하는 자료구조와

blog-of-gon.tistory.com

 

 

자료구조 - MAP(맵)

Key와 Value로 이루어진 자료구조 순자적으로 메모리에 데이터를 저장하는 배열과 리스트와는 달리 Key와 Value로 구성되어 있는 개념의 자료 구조에 대하여 알아보도록 하겠습니다. Key(키)와 Value(

blog-of-gon.tistory.com

 

선언과 생성

아래와 같이 선언 및 생성을 할 수 있습니다.

위처럼 IDE 툴을 이용한다면 java.util을 자동으로 import 할 수 있습니다.

import java.util.HashMap;

public class HashMapTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashMap<String, String> map = new HashMap<String, String>();
		HashMap<String, String> map1 = new HashMap<String, String>(10); //초기 사이즈 지정
	}
}

HashMap의 경우도 저장되는 데이터를 저장하는 크기를 자유롭게 늘릴 수 있습니다. 다만, 해당 컬렉션 프레임워크의 특성상 데이터를 저장하는 크기를 추가하게 되면 저장공간이 한 칸씩 늘어나지 않고 비 효율적으로 늘어나기 때문에 크기를 지정한다면 좀 더 효율 적 일수 있습니다.

 

추가하기 - put(key, value)

//함수 원형
Object put(Object Key,Object Value)

HashMap은 Key와 Value로 구성되어 있기 때문에 아래와 같이 추가를 해야 됩니다. 

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		System.out.println(map);
	}
}

위에서 한번 언급한 것처럼 똑같은 Key값을 추가한다면 기존 Key값은 사라지고 새로운 Key로 대체됩니다.

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		map.put("이름", "이순신");
		System.out.println(map);
	}
}

삭제하기 - remove(key) / clear()

//함수 원형
Object remove(Object Key)
void clear()

HashMap은 Key를 이용한 값을 찾는 방식임으로 Key를 통해 값을 삭제할 수 있습니다.

  • . remove(key)를 통해 key와 value를 삭제합니다
  • . clear()를 통해 전체 HashMap을 초기화합니다.
import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		map.put("이름", "이순신");
		map.remove("이름");
		System.out.println(map);
	}
}

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		map.put("이름", "이순신");
		map.clear();
		System.out.println(map);
	}
}

HashMap에 저장된 요소 개수 -. size()

//함수 원형
int size()

HashMap에 Key와 value로 저장된 요소 들을 개수를 알고 싶다면 다음과 같이 사용합니다.

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		map.put("이름", "이순신");
		
		System.out.println(map.size());
	}
}

HashMap에 저장되어 있는 Key 확인하기 - containsKey

//함수 원형
boolean containsKey(Object Key)

HashMap의 특성상 동일한 Key는 존재할 수 없습니다. 따라서 안전하게 추가하기 위해 아래와 같은 메서드들을 사용할 수 있습니다.

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		if(map.containsKey("이름")) {
			System.out.println("containsKey의 반환 값 : "+map.containsKey("이름"));
			System.out.println("이미 존재하고 있는 Key입니다.");
		}
		else {
			map.put("이름", "이순신");
		}
		System.out.println(map);
	}
}

특정 Key의 value를 가져오기 - get(key)

//함수 원형
Object get(Object Key)

특정 Key값을 탐색하여 value를 가지고 올 수 있습니다.

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");
		String name = map.get("이름");
		System.out.println(name);
	}
}

HashMap에 저장되어 있는 모든 Key값을 받아오기 - keySet()

//함수 원형
set get()

위 메서드를 이용하면 생성한 hashMap에서 저장되어 있는 모든 Key값을 가지고 올 수 있습니다.

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("이름", "홍길동");
		map.put("나이", "100 ");

		System.out.println(map.keySet());
	}
}

 

728x90
반응형

'컴퓨터 > Java' 카테고리의 다른 글

Java - 예외(Exception)란?  (0) 2021.12.16
Java - ArrayList  (0) 2021.10.12
Java - import  (0) 2021.10.08
Java - 제네릭(Generic)  (0) 2021.10.06
Java - 컬렉션프레임워크(CKP)  (0) 2021.10.05

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :