본문 바로가기

코딩 공부/Java

HashMap

HashMap

key value로 구성

인덱스 값을 가지고 있지는 않다.

 ▷key : 중복 x ▷value : 중복 o

기능 메소드 설명
객체추가 V put(K key,V value) 주어진 키와 값을 추가 저장이 되면 값을 리턴
객체검색 boolean containsKey(Object key) 주어진 키가 있는지 여부
boolean containsValue(Object value) 주어진 값이 있는지 여부
Set<Map.Entry<K,V>>entrySet() 키와 값의 쌍으로 구성된 모든 Map.Entry객체를 Set객체에 담아서 리턴
V get(Object key) 주어진 키의 값을 리턴
boolean isEmpty() 컬렉션이 비어있는지 여부
Set<K> keySet() 모든 키를 Set객체에 담아서 리턴
int size() 저장된 키의 총 수를 리턴
Collection<V>values() 저장된 모든 값 Collection에 담아서 리턴
객체 삭제 void clear() 모든 Map.Entry(키와 값)를 삭제
V remove(Object key) 주어진 키와 일치하는 Map.Entry삭제. 삭제가 되면 리턴

 

1.put, get

get()에 없는 값이 들어가면 null을 반환한다.

package hashMaps;
import java.util.HashMap;
public class Ex01 {
	public static void main(String[] args) {
		HashMap<Integer,String> hm = new HashMap<>();
		
		hm.put(0, "test");
		hm.put(1, "hello");
		System.out.println(hm.get(0));
		System.out.println(hm.get(1));
	}
}
package hashMaps;
import java.util.HashMap;
public class Ex01 {
	public static void main(String[] args) {
		HashMap hm = new HashMap();//제네릭을 생략(Object)
		
		hm.put(0, "test");
		hm.put(1, "hello");
		hm.put("name", "공주원");
		hm.put(2, 2);
		System.out.println(hm.get(0));
		System.out.println(hm.get(1));
		System.out.println(hm.get("name"));
		System.out.println(hm.get(2));
	}
}
package hashMaps;
import java.util.HashMap;
public class Ex03 {
	public static void main(String[] args) {
		HashMap<String, Integer> map = new HashMap<>();
		
		map.put("선풍기", 10);
		map.put("에어컨", 100);
		map.put("건조기", 100);
		System.out.println("선풍기 : "+map.get("선풍기") + "만원");
		System.out.println("에어컨 : "+map.get("에어컨") + "만원");
		System.out.println("건조기 : "+map.get("건조기") + "만원");
		System.out.println("없는값 : "+map.get("없는값") + "만원");
	}
}
선풍기 : 10만원
에어컨 : 100만원
건조기 : 100만원
없는값 : null만원

키와 밸류를 찾을 때는 자료형을 꼭 맞춰주어야 한다.

package hashMaps;
import java.util.HashMap;
import java.util.Scanner;
public class Ex04 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		HashMap<String, Integer> map = new HashMap<>();
		
		map.put("선풍기", 10);
		map.put("에어컨", 100);
		map.put("건조기", 100);
		
		System.out.println("키 입력 : ");
		String key = sc.next();
		System.out.println("값 입력 : ");
		int value = sc.nextInt();
		System.out.println(map);
		System.out.println(key+"키 검색 결과"+map.containsKey(key));
		System.out.println(value+"값 검색 결과"+map.containsValue(value));
		
	}
}
키 입력 : 
선풍기
값 입력 : 
100
{건조기=100, 에어컨=100, 선풍기=10}
선풍기키 검색 결과true
100값 검색 결과true

HashMap을 ArrayList에 넣어 줄 수 있다.

package hashMaps;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Ex05 {
	public static void main(String[] args) {
		
		HashMap<String, Integer> map = new HashMap<>();
		
		map.put("선풍기", 10);
		map.put("에어컨", 100);
		map.put("건조기", 100);
		
		System.out.println(map.keySet());
		System.out.println(map.values());
		ArrayList<String> keys = new ArrayList<>(map.keySet());
		ArrayList<Integer> vals = new ArrayList<>(map.values());
		
		System.out.println(keys);
		System.out.println(vals);
		
	}
}
[건조기, 에어컨, 선풍기]
[100, 100, 10]
[건조기, 에어컨, 선풍기]
[100, 100, 10]

2.Iterator

package hashMaps;
import java.util.HashMap;
import java.util.Iterator;
public class Ex06 {
	public static void main(String[] args) {
		
		HashMap<String, String> map = new HashMap<>();
		map.put("선풍기", "10만원");
		map.put("에어컨", "100만원");
		map.put("건조기", "200만원");
		
		Iterator<String> it = map.keySet().iterator();
		
		while(it.hasNext()) {
		String key = (String)it.next();
		System.out.println(key + " : " + map.get(key));
		}
		
		it = map.values().iterator();
		while(it.hasNext()) {
		String value = (String)it.next();
		System.out.println(value);
		}
	}
}
 

3.put 향상for문

put : 이미 만들어진 키를 지정해서 데이터를 입력하면 수정

package hashMaps;
import java.util.HashMap;
import java.util.Iterator;
public class Ex07 {
	public static void main(String[] args) {
		
		HashMap<String, String> map = new HashMap<>();
		map.put("선풍기", "10만원");
		map.put("에어컨", "100만원");
		map.put("건조기", "200만원");		
		Iterator<String> it = map.keySet().iterator();
		
		for(String key : map.keySet()){
			System.out.println(key + " : " + map.get(key));
		}
		for(String value : map.values()) {
			System.out.println(value);
		}
		
	}
}

'코딩 공부 > Java' 카테고리의 다른 글

생성자  (0) 2022.08.23
클래스  (0) 2022.08.22
Hash Set  (0) 2022.08.20
Collection Framework & ArrayList  (0) 2022.08.19
메모리 구조와 배열  (0) 2022.08.18