HashMap
그림을 보면 Map이 interface로 존재하기 때문에
우리는 Map = new Hashmap의 형태로 만들 수 있다.
기본적으로 generic에는 key와 value
즉, dictionary 형태로 나타내진다.
map은 기본적으로 add대신 put을 사용한다.
(Why?) Map = new HashMap?
왜 우리는 list든 map이든 이런 형식으로 만드는 걸까?
바로 업캐스팅의 장점을 활용하기 위해서이다.
- map의 기능만을 사용하기 위해서
- map에는 treemap, linkedhashmap등 다양한 map들을 사용하기 위해서
add vs put
- list와 같은 순서가 상관 있는 계열의 값은 보통 add함수를 통해 삽입
- map과 같이 값에 의미를 두고 순서가 상관 없는 계열 값은 put을 통해 삽입
HashSet
HashSet 클래스는 Set 인터페이스를 구현한 클래스 이다.
- 저장된 데이터를 순서없이 무작위로 관리한다.
- key 값도 없다.
- 중복을 허용하지 않는다 ( 같은 값이 두개 이상 존재할수 없다 )
- 어떤 data 를 묶음(집합) 으로 관리 하고자 할때 사용한다.
- 중복된 데이터를 제거 할때도 유용하다
*위의 설명과 달리 순서가 상관이 없는 데도 add 함수를 사용하는 특이한 case다.