파이썬을 하다보면 딕셔너리(dictionary)라는 것을 많이 접할 것이다.
dictionary는 key-value 형태의 자료구조로, 필자의 경우 pandas.DataFrame으로 데이터프레임화시키기 전 데이터 수집 시 빠르게 데이터를 순회하기 위해 dictionary형태를 애용했다. 자바에도 딕셔너리와 유사한 자료구조가 있다는 사실!
바로 HashMap이다.
import java.util.HashMap으로 라이브러리를 임포트하여 사용하는 구조로, 선언 방식은 아래와 같다.
import java.util.HashMap;
public class Application{
public static void main(String[] args){
HashMap<String, Integer> sampleHashmap = new HashMap<>();
}
}
HashMap은 파이썬의 딕셔너리와 유사한 형태로 key-value방식으로 데이터를 저장한다.
기본적인 방식은 파이썬과 유사하나, 편하게 값을 넣어주면 되는 파이썬과는 다르게 불친절한 자바는 Hashmap에서 key-value로 사용될 데이터들의 자료형을 선언해주어야 한다.
위의 코드에서 Hashmap<String, Integer> sampleHashmap = new HashMap<>();로 선언한 것은, key값은 String, value는 Integer로 하겠다는 것을 의미한다.
무사히 Hashmap을 선언하였으면 이제 안에 자료들을 넣어야 한다. 간단하게 put(key,value)로 넣으면 된다.
Hashmap<String, Integer> sampleHashmap = new HashMap<>();
sampleHashmap.put("yehun",1);
sampleHashmap.put("dongdong",2);
System.out.println(sampleHashmap);
{dongdong=2, yehun=1}
sampleHashmap.get("yehun"); // 1
sampleHashmap.get("dongdong"); // 2
Collections을 이용한다.import java.util.Collections;
int maxNumber = Collections.max(samplehashmap.values()) // 2
int minNumber = Collections.min(samplehashmap.values()) // 1
결론 : HashMap을 이용하면 자바에서도 데이터를 딕셔너리처럼 저장할 수 있다.