Day24 - Set , Map

2021. 3. 20. 17:19JAVA 공부

어제는 오늘 있을 자격증 시험을 준비하느라, 포스팅 하지 못했던 Set과 Map 을 다시 한번 복습하면서 , 포스팅 해보도록 하겠습니다 ~~

 

HashSet

Set은 순서가 뒤죽박죽 (index가 없다) , 중복된 내용x 입니다.

로또 바구니 라고 생각을 하면 된다고 합니다 ex) 로또번호는 1~45까지 뒤죽박죽 으로 중복되지 않은 값

Set은 Interface 라서, 구체화 된 HashSet을 사용해 줍니다.

다형성에 의해서 HashSet은 Set 에 저장이 될 수 있습니다.

물론, HashSet 에 저장을 해도 됩니다 ~

 

 

- add(Type e) -> e를 추가

- size() -> set의 크기를 반환

분명히 add를 5번 썻는데, 크기가 4죠?

 

- hasNext() -> 다음 값이 있는지 검사 , 있으면 true, 없으면 false

- next() -> 다음 값으로 이동하면서, 반환

set에 접근할 때에는 , Iterator(반복자) 를 만들어서 접근을 해야 합니다.

이렇게 출력을 해보면, 순서가 뒤죽박죽으로 들어간 걸 확인 할 수 있습니다

 

- contains(Object o) -> set에 o가 포함되어 있는지 여부 true, false

Set 에는 index(순서)가 없기 때문에, 값으로 접근을 해주어야 합니다

 

- remove(Obejct o) -> set에 저장되어 있는 값 o 삭제

 

TreeSet

TreeSet 도 Set 입니다 ~

그렇기 때문에, HashSet 이랑 똑같은데 ... 1개만 달라요

중복x 순서x 그리고 오름차순으로 정렬이 됩니다 !

중복된 강아지는 저장이 안된걸 확인 할 수 있고, 저장된 값은 순서에 상관없이 오름차순으로 정렬되어 있는 것을 확인 할 수 있습니다.

 

Map

map 은 굉장히 중요하다고 합니다 ~

map 은 key, value 를 가지고 있습니다.

key 는 고유한 성질을 가지고 있습니다. ( 중복 x )

Map 도 HashMap 을 사용하면 되는데요, HashMap 저장해도 되고, Map 에 저장을 해도 됩니다

Map은 Key, Value 를 가지고 있기 때문에 위 사진처럼, Key값에 사용할 타입과 Value값으로 사용할 타입을 지정해주어야 합니다 <Interger, String>

 

- put(Type key, Type value) -> key와 value를 저장

같은 키를 입력할 경우 key에 해당하는 value 값 수정

- size() -> map의 크기를 반환

- get(Type key) -> key값으로 해당하는 value 얻어오기

- map에 들어있는 값 순차적으로 접근하기

- keySet() -> key만 추출해서 Set형태로 반환

향상된 for 문을 이용해서 이렇게 접근할 수 있습니다.

또는, 반복자 Iterator를 이용해서 접근 하는 방법도 있습니다.

- EntrySet() -> Set<Entry<Type, Type>> 형태로 반환

EntrySet 을 이용해서, 이렇게 접근을 하는 방법도 있습니다.

EntrySet은 key를 얻어올 수도, value를 얻어올 수도 있습니다.

 

- containsKey(Type key) -> map 안에 매개변수로 받은 key값이 있는지 검사합니다

- remove(Type key) -> map 안에 매개변수로 있는 key 값이 있다면 삭제합니다

 

ArrayList , LiknedList 를 배우고 와서 그런지, 메서드 들이 거의 비슷하게 느껴지는 것 같습니다.

그래도 몇몇개는 헷갈리니까, . 을 이용해서 잘 사용합시다 ~

 

여태까지 배운 Collection Freamwork 중에는, ArrayList, Map 이 가장 중요하다고 합니다 ~

다른거는 다 까먹어도 ArrayList, Map은 기억하도록 합시다

 

이렇게 Set, Map 에 대해서 알아봤습니다

 

고생하셨습니다