완주하지못한 선수 문제를 풀다가 Hashp맵에 대해 모르는 메소드가 있어서 공부하였다.
Hashmap에대한 코드
package com.jj.basic;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class A_Collection {
public void HashMap01() {
Map<String, Double> product = new HashMap<>();
product.put("buldak", 3.9);
product.put("apple", 2.4);
product.put("water", 1.4);
product.put("milk", 2.6);
product.put("milk", 2.6);
// get Value
Double buldak = product.get("buldak");
System.out.println("the Price of buldak: " + buldak);
// 모든 key를 print
// 키값만 출력할때 keySet()메소드를 사용
Set<String> keys = product.keySet();
// 순서가 필요없는 데이터를 hash table에 저장. Set 중에 가장 성능이 좋음
// 객체(데이터)를 중복해서 저장할 수 없다.
// for(String key : keys) {
// System.out.println(key);
// }
// 람다식
// (매개변수) -> {실행문}
keys.forEach(key -> System.out.println(key));
System.out.println("============================");
// 모든 value print
Collection<Double> values = product.values();
values.forEach(value -> System.out.println(value));
System.out.println();
System.out.println("모든 key와 value를 같이 출력");
Set<Map.Entry<String, Double>> entries = product.entrySet();
for (Map.Entry<String, Double> entry : entries) {
System.out.print("key: " + entry.getKey());
System.out.println(", Value: " + entry.getValue());
}
// 람다 표현식
System.out.println("람다표현식p2");
product.forEach((a, b) -> {
System.out.print("key: " + a);
System.out.println(", value: " + b);
});
// key가 존재하는지 알고싶은경우
// getOrDefault()
System.out.println("getOrDefault");
product.getOrDefault("Fish", 29.4);
}
public static void main(String[] args) {
A_Collection a = new A_Collection();
a.HashMap01();
}
}
Hashmap의 getOrDefault메소드 코드 이다.
없을경우 디폴트를 지정할수있다.
package com.jj.basic;
import java.util.HashMap;
import java.util.Map;
public class B_Collection실습 {
public void Bsilsub() {
// String[] arr1 = {"aaa","bbb","ccc","aaa","bbb"};
//
// Map<String, Integer> map = new HashMap<String, Integer>();
// for(String a : arr1)map.put(a, map.getOrDefault(a, 0)+1);
// System.out.println(map);
String[] arr1 = {"mislav", "stanko", "mislav", "ana"};
String[] arr2 = {"stanko", "ana", "mislav"};
Map<String, Integer> map = new HashMap<String, Integer>();
//arr1에 있는걸 a에 넣고 map에
for(String a : arr1) {
map.put(a, map.getOrDefault(a, 0) + 1);
}
System.out.println(map);
}
public static void main(String[] args) {
B_Collection실습 b = new B_Collection실습();
b.Bsilsub();
}
}
package com.jj.basic;
import java.util.HashMap;
import java.util.Map;
public class C_HashMap실습 {
public void HashTest() {
Map<String, Integer> map = new HashMap();
map.put("a", 100);
map.put("b", 200);
map.put("c", 300);
map.put("d", 400);
// print map details
System.out.println("HashMap: " + map.toString());
// provide key whose value has to be obtained
// and default value for the key. Store the
// return value in k
int k = map.getOrDefault("b", 500);
// provide key whose value has to be obtained
// and default value for the key. Store the
// return value in k
int j = map.getOrDefault("y", 500);
// print the value of k returned by
// getOrDefault(Object key, V defaultValue) method
System.out.println("Returned Value: " + k);
System.out.println("Returnd Value (y) : " + j);
}
public void HashTest2() {
HashMap<String,Integer> map = new HashMap<>();
String part[] = { "a", "b", "c", "d" };
System.out.println(map.toString());
for (String p : part) {
map.put(p,map.getOrDefault(p, 0) +1 );
}
//이게 무슨뜻인지 알아는게 핵심이군...
//put하는데 map에서 p가없으면 1
System.out.println(map.toString());
}
public static void main(String[] args) {
C_HashMap실습 c = new C_HashMap실습();
// c.HashTest();
c.HashTest2();
}
}
getOrDefault 메소드의 사용법을 알아보았다.
package com.jj.basic;
import java.util.HashMap;
import java.util.Map;
public class C_HashMap실습 {
public void HashTest() {
Map<String,Integer> map = new HashMap();
map.put("a", 100);
map.put("b", 200);
map.put("c", 300);
map.put("d", 400);
//print map details
System.out.println("HashMap: "+map.toString());
// provide key whose value has to be obtained
// and default value for the key. Store the
// return value in k
int k = map.getOrDefault("b", 500);
// provide key whose value has to be obtained
// and default value for the key. Store the
// return value in k
int j = map.getOrDefault("y", 500);
// print the value of k returned by
// getOrDefault(Object key, V defaultValue) method
System.out.println("Returned Value: "+k);
System.out.println("Returnd Value (y) : "+j);
}
public static void main(String[] args) {
C_HashMap실습 c = new C_HashMap실습();
c.HashTest();
}
}
www.geeksforgeeks.org/hashmap-getordefaultkey-defaultvalue-method-in-java-with-examples/
HashMap getOrDefault(key, defaultValue) method in Java with Examples - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
'language > Java' 카테고리의 다른 글
getOrDefault (0) | 2022.03.02 |
---|---|
제네릭이란? (0) | 2020.10.06 |
향상된 for문 (0) | 2020.09.29 |