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 |