Java 자료구조(Map)

Soozoo·2024년 6월 25일

JAVA

목록 보기
22/41

Map 이란?

Map은 키-값 쌍(Key-Value Pair)으로 데이터를 저장하는 자료구조입니다. Map은 각 키를 고유하게 유지하며, 키를 사용하여 값에 접근할 수 있습니다. 다양한 프로그래밍 언어에서 Map은 해시 테이블, 딕셔너리, 연관 배열 등의 형태로 구현됩니다.

Map의 주요 특징

  1. 키-값 쌍 저장: 각 데이터는 키와 그에 대응하는 값으로 이루어져 있습니다.
  2. 키의 유일성: 각 키는 유일하며, 동일한 키로 여러 값을 저장할 수 없습니다.
  3. 빠른 검색: 키를 사용하여 값을 빠르게 검색할 수 있습니다.
  4. 무순서: 대부분의 Map 구현은 순서에 의존하지 않습니다. 즉, 저장된 순서와 관계없이 데이터가 정렬되지 않습니다.

Map의 종류

  1. 해시맵 (HashMap)
    특징: 키를 해싱하여 저장, 평균적으로 O(1)의 시간 복잡도로 빠른 검색 및 삽입이 가능
    장점: 매우 빠른 검색, 삽입, 삭제 연산
    단점: 키의 순서를 보장하지 않음

  2. 트리맵 (TreeMap)
    특징: 키를 정렬된 순서로 저장 (이진 검색 트리 기반)
    장점: 키의 순서가 중요할 때 사용, 범위 검색에 유리
    단점: 삽입, 삭제, 검색 연산의 시간 복잡도가 O(log n)

  3. 링크드해시맵 (LinkedHashMap)
    특징: 삽입 순서를 유지하는 해시맵
    장점: 삽입 순서를 유지하면서 해시맵의 모든 장점을 가짐
    단점: 일반 해시맵보다 약간 더 많은 메모리를 사용

Map의 장점

1.빠른 검색: 키를 사용하여 값을 빠르게 검색할 수 있습니다.
2.유연성: 다양한 데이터 유형을 저장하고 관리할 수 있습니다.
3.키의 유일성: 각 키가 고유하므로 데이터의 중복을 방지할 수 있습니다.
4.다양한 구현: 해시맵, 트리맵, 링크드해시맵 등 다양한 구현체가 있어 상황에 맞게 선택할 수 있습니다.

Code 예시:

package ex04.collection.map;
import java.util.*;

public class MainEntry {
	public static void main(String[] args) {
		Map map = new HashMap();
		map.put("kosa", "1234");
		map.put("msa", "1004");
		map.put("doyeon", "789");
		map.put("kosa", "1234"); // 중복이 있으면 덮어 씌움 중복허용 x
		
		System.out.println("요소 개수 : " + map.size());
		
		Scanner sc =new Scanner(System.in);
		
		
		while(true) {
			System.out.println("id와 password를 입력해주세요");
			System.out.println("id : ");
			String id =sc.nextLine().trim();
			System.out.println("pwd : ");
			String pwd =sc.nextLine().trim();
			System.out.println();
			
			if(!map.containsKey(id)) {
				System.out.println("입력하신 id는 존재하지 않습니다. 다시 입력해주세요");
				continue;
			}else {
				if(!map.get(id).equals(pwd)) {
					System.out.println("비밀번호가 일치하지 않습니다. 다시 입력해주세요.");
				}else {
					System.out.println(id+"와 "+pwd+"가 일치합니다.");
					System.out.println("환영합니다.");
					break;
				}
			}
		} // end while
	}
}

profile
넙-죽

0개의 댓글