Collection/HashMap
HashMap
by pms93
2022. 7. 25.
package hashMaps;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class hashMap1 {
public static void main(String[] args) {
// HashMap
// - Key-Value 두가지가 연결된 상태로 저장된다.
// - 데이터 저장시에 set과 같이 순서를 고려하지 않는다.
// HashMap<Key의 자료형, Value의 자료형> 참조변수명 = new HashMap<>();
// - Generic의 생략이 가능하다
HashMap hm1 = new HashMap();
HashMap<Integer, String> hm2 = new HashMap<>();
// .put()
// - 데이터를 저장해준다.
// - 이미 존재하는 key값에 데이터 저장시 oldValue -> newValue로 수정된다.
hm2.put(0, "hello");
hm2.put(1, "world");
// .get()
// - 파라미터 값은 key를 사용한다(value 사용x)
System.out.println(hm2.get(0));
System.out.println(hm2.get(1));
hm1.put("0", 1000);
hm1.put(1, "hello");
hm1.put("naver", "https://www.naver.com");
System.out.println(hm1.get("0"));
System.out.println(hm1.get(1));
System.out.println(hm1.get("naver"));
// .containsKey(), .containsValue()
// - key와 value가 존재하는지에 대해 true, false를 반환해준다.
System.out.println("key값 '0'은 존재하는가?\n" + hm1.containsKey("0"));
System.out.println("value값 hellow는 존재하는가?\n" + hm1.containsValue("hellow"));
// .keySet(),
// - key값만 따로 분리하여 저장이 가능하다.
// .values()
// - value값만 따로 분리하여 저장이 가능하다.
HashMap hm3 = new HashMap();
hm3.put("선풍기", 10);
hm3.put("에어컨", 100);
hm3.put("건조기", 1000);
System.out.println(hm3.keySet());
System.out.println(hm3.values());
// HashMap은 key와 value를 분리하여 ArrayList로 넘겨받을 수 있다.
ArrayList<String> keys = new ArrayList<>(hm3.keySet());
ArrayList<Integer> values = new ArrayList<>(hm3.values());
System.out.println(keys);
System.out.println(values);
// HashMap 또한 Iterator 사용이 가능하다
HashMap<String, Integer> hm = new HashMap<>();
Scanner sc = new Scanner(System.in);
hm.put("선풍기", 10);
hm.put("에어컨", 100);
hm.put("건조기", 100);
hm.put("선풍기", 1000);
Iterator<String> itk = hm.keySet().iterator();
while (itk.hasNext()) {
String key = itk.next();
System.out.println(key + " : " + hm.get(key));
}
Iterator<Integer> itv = hm.values().iterator();
while (itv.hasNext()) {
Integer value = itv.next();
System.out.println(value);
}
// .replace("a", "b", "c")
// Key값 a에 대해 예상되는 Value b일 때 c로 대체(수행)한다.
// c에서 .put()함수를 사용해도 잘 작동한다.
}
}