Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

Map 컬렉션 본문

프로그래밍 언어/Java

Map 컬렉션

세레프 2023. 6. 18. 23:05

데이터를 효율적으로 사용하기 위해서, 자료구조를 통해 의미와 목적을 바탕으로 구분해서 저장한다. 이때, 자료구조 데이터를 구분해서 저장하는 구조로, 데이터를 효율적으로 사용하기 위해서 사용한다. 그리고 자바에서는 자료구조를 사용해서 데이터를 효율적으로 추가, 삭제, 검색 할 수 있도록 컬렉션 인터페이스를 사용방법을 정의했으며, 데이터(요소)를 가지는 객체의 주소를 저장하는 컬렉션 클래스로 java.util 패키지에 구현했다.

 

컬렉션 프레임 워크

상황에 따라서 자료가 어떻게 저장되어야 효율적으로 데이터를 사용할 수 있는지 달라진다. 그래서 상황에 따라 자료를 어떻게 저장하는지 정의할 필요가 있다. 이때, 자료들을 저장할 때, 효율

my-it-diary.tistory.com

 

Map 컬렉션

 Map 컬렉션 컬렉션 프레임워크에 있는 Map인터페이스를 통해 구현한 클래스로, 키를 통해 값을 참조할 수 있는 자료구조이다. 

 

Map (Java Platform SE 8 )

If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null. If the function returns null no mapping is recorded. If the function

docs.oracle.com

 Map 컬렉션의 특징으로는 값을 저장할 때, 그에 대응하는 키도 같이 지정해서 저장한다. 그래서 Map 컬렉션에서는 값을 찾을 때, 키를 사용해서 값을 찾는다. 이때, value의 중복은 허용하지만 key의 중복은 허용하지 않는다. 

 

 Map 컬렉션은 키와 값을 통해 데이터를 다룬다. 그래서 Map의 객체를 생성할 때에는 Key의 타입 파라미터과 Value의 타입 파라미터를 지정해야 한다.

 

Map<K,V> 변수 = new  Set 컬랙션 클래스() ;

 

 위의 구조는 List 컬랙션 클래스를 통해 객체를 생성하는 구조로, Map 컬렉션의 종류에는 HashMap이 있다.

 

  Map 컬렉션은 Map 인터페이스를 통해 구현되어 있기에, 공통적으로 사용할 수 있는 메서드가 있다.

  • containsKey(키) : 해당 키가 있는지 여부 출력
  • containsValue(요소) : 해당 값이 있는지 여부 출력
  • get(키) : 해당 키와 쌍인 값을 출력
  • isEmpty() : 맵 객체에 요소가 없는지 여부 출력
  • keyset : 키들을 Set 형식으로 출력
  • put(키, 요소) : 키와 값을 요소로 추가
  • remove(키) : 해당 키를 가진 요소를 제거
  • size() : 전체 요소의 개수를 출력
iterator 인터페이스
 iterator 컬렉션 요소에 접근해서 반복적으로 요소에 접근할 수 있도록 도움을 주기 위한 것으로, 인터페이스로 구성되어 있기에 해당 컬렉션 클래스의 iterator메서드를 통해 객체를 생성해야 한다. 
생성
Iterator<E> 변수 = 컬렉션 클래스 객체.iterator();
이때, <E>는 생략이 가능하며, 컬랙션 클래스에 저장되어 있는 요소의 타입에 맞게 타입을 변형해서 생성
메서드
hasNext() : 가져올 요소가 있으면 true, 없으면 false를 출력
next() : 컬렉션에서 하나의 요소를 호출
remove() : 해당 컬렉션 클래스에서 객체를 제거

 

HashMap

 HashMap Map 인터페이스를 통해 구현된 컬렉션 클래스로, 해싱이라는 검색 알고리즘을 통해 원하는 데이터를 검색한다.

 이때, Hash란 저장할 키 값을 입력 받을 경우, 해시함수를 통해 새로운 주소 값을 생성해서 메모리에 저장하는 방식으로, 기존에 해당 데이터의 값을 위치 값으로 저장하는 배열 저장 방식의 메모리 낭비를 보안하기 위해 사용한다.

 

HashMap (Java Platform SE 8 )

If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null. If the function returns null no mapping is recorded. If the function

docs.oracle.com

 즉, HashMap은 값을 저장할 때 키를 지정해서 같이 저장한다. 이때, 값은 동일해도 상관 없지만, 키가 같을 경우에는 제일 마지막에 저장한 값으로 대체한다. 

 

HashMap<K><V> 변수 = new HashMap<K><V>();

 

 이때, 제너릭 기법인 <K>와<V>는 생략이 가능하며, <K>와<V>를 생략할 경우에는 put()메서드를 통해 추가되는 객체의 타입에 맞춰서 해당 HashMap에 저장할 수 있는 타입이 변경된다.

package pack0618;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class Code1 {

	public static void main(String[] args) {
		
		HashMap<String,String> hm = new HashMap<String,String>();
		Scanner sc = new Scanner(System.in);
		
		hm.put("apple","사과");
		hm.put("paper", "종이");
		hm.put("flower", "꽃");

		Set keyset = hm.keySet();
		System.out.println(keyset);
		
		String voca;
		System.out.print("알고싶은 단어 : ");
		voca=sc.nextLine();
		if(hm.containsKey(voca)) {
			System.out.println(voca+":"+hm.get(voca) );
		}
		else {
			System.out.println("해당 단어에 대한 뜻이 없습니다.");
		}
		
	}

}

'프로그래밍 언어 > Java' 카테고리의 다른 글

Queue, Stack  (0) 2023.06.17
List 컬렉션  (0) 2023.05.27
Set 컬렉션  (0) 2023.05.26
컬렉션 프레임 워크  (0) 2023.05.25
Format 클래스  (0) 2023.05.24
Comments