Kotlin - 07. Collection(1) - Immutable
07. Collection - Immutable
1. Immutable Collection(값을 변경할 수 없다.)
-> .set() 사용 불가능
----------------------------------------------------------------------------------------
<List>
listOf()
- 중복을 허용한다.
list를 선언할 때는 배열과 비슷하게 listOf()를 사용한다.
이때 listOf<자료형>도 배열과 똑같다.
출력하면 이렇게 리스트에 담아놨던 숫자인
1, 2, 3이 출력되는 것을 확인할 수 있다.
리스트이기 때문에 [ ] 안에 출력되는 것이다.
여기서 Set과의 차이점이 나타나는데,
이렇게 중복되는 숫자 3을 3개 넣으면 결과는 어떻게 나올까?
그러면 이렇게 넣은 그대로 출력하는 것을 확인 할 수 있다.
리스트 이름 . get(인덱스 번호)
리스트 이름 [인덱스 번호]
이렇게 배열과 비슷하게 리스트에서도 접근 할 수 있다.
출력하면 리스트 0에 들어가있던 숫자 1이 출력된다.
----------------------------------------------------------------------------------------
<Set>
setOf()
- 집합을 의미
- 중복을 허용하지 않는다.
- 순서가 없다 -> .get()을 사용하지 않는다.
Set을 사용하기 위해서는 setOf()를 사용한다.
여기서도 역시 setOf<자료형> 을 사용한다.
특이점은 앞의 List와 다르게 중복되는 숫자는 하나만 출력한다는 것이다.
집합은 동일 값을 허용하지 않기 때문에 그렇다.
분명히 3을 3개나 썼는데,
출력은 3 한개가 출력되는 것을 확인할 수 있다.
Set은 집합의 개념이기 때문에 인덱스가 존재하지 않는다.
따라서 .get() 을 통해 인덱스를 이용한 출력이 불가능하다.
대신에 forEach를 이용해서 출력이 가능하다.
이렇게 집합에 들어가 있는 원소들이 하나씩 출력되는 것을 확인할 수 있다.
----------------------------------------------------------------------------------------
<Map>
mapOf()
- key와 value 방식으로 관리한다.
- "key값" to value값
Map은 key와 value를 사용한다. 여기서도 비슷하게 mapOf()를 이용한다.
대신 자료형은 key, value 두개이므로, mapOf<key 자료형, value 자료형>()으로 사용한다.
또한 값을 적을 때도 to를 사용하여 key에 맞는 value로 지정해준다.
출력하면 다음과 같이 나온다.
Map에서는 .get()을 사용할 수 있다.
다만 주의해야 할 점은,
.get()에서 괄호 () 안에 인덱스가 아니라
key 값을 넣어야 한다는 것이다.
그러면 one이라는 key 값에 대응하는 value인 1이 출력된다.