2022. 3. 9. 20:25ㆍ[Android APP] feat. Kotlin/Kotlin 언어 기초
리스트(list)란?
하나의 데이터 타입과 커스텀 오브젝트 또는 클래스를 모두 저장할 수 있으며, 새로운 값이 추가되면서 크기도 바뀔 수 있다.
리스트 특징
- 순서가 있는 엘리먼트(element: 자료형)들의 집합, 시퀀스(Sequence) 라고도 부름.
- 불연속적인 메모리 공간을 점유하여 메모리 관리가 용이
- 동적 타입
- 포인터를 통해 값에 접근
- 인덱스(index)는 몇 번째 데이터인가 정도의 의미를 갖음
리스트의 장점
- 포인터를 사용하여 다음 값의 위치를 가르키고 있으므로 삽입/삭제가 용이하다.
- 동적타입으로 크기가 정해져있지 않다.
- 빈틈 없는 엘리먼트(element: 자료형) 적재라는 장점을 취한 자료구조이다.
- 메모리의 재사용이 용이하다.
- 불연속적 메모리공간을 점유하여 메모리 관리가 편리하다.
리스트의 단점
- 불연속적인 메모리공간을 사용하여 검색 성능이 좋지 않다.
- 포인터를 통하여 다음 값을 가르키므로 배열 대비 추가적인 메모리 공간이 필요하다.
- 빈 요소(element: null)를 허용하지 않는다.
따라서 배열과 리스트의 차이점이라 하면 가장 큰 것은
배열은 정적이며 사이즈 조절이 불가하고 연속적인 메모리 공간을 사용하고
리스트는 동적이며 사이즈 조절이 가능하고 불연속적인 메모리 공간을 사용한다.
============================================================================
먼저 리스트는 아무 타입을 넣어도 실행이 된다.
anyType은 아래 코드에서는 실행결과를 넣지 않았지만, 잘 돌아가는 것을 알 수 있다.(for문으로 돌려도)

하지만 여기서 문제는 리스트가 Immutable이므로 아이템을 더 추가할 수 없다.
따라서 리스트를 Mutable로 바꿔서 리스트에 아이템을 추가할 수 있다.

특정 타입의 Mutable리스트를 생성하고 싶다면, 리스트를 생성할 때
mutableListOf를 사용해서 생성하면 아래와 같이 String형의 뮤터블 리스트가 생성되고, 아이템을 추가할 수 있게 된다.

특정 인덱스의 값을 바꿀 수도 있다.
아래와 같이 리스트의 인덱스 번호를 지정하고 값을 바꾸면 잘 바뀌는 것을 알 수있다.
또한 removeAt, removeAll 등의 메소드를 사용하여 해당 인덱스의 값을 지울수도 있다.
이 외에도 다양한 메소드로 진행할 수 있는 것들이 많다.

'[Android APP] feat. Kotlin > Kotlin 언어 기초' 카테고리의 다른 글
25. 배열 리스트(Array List) (0) | 2022.03.13 |
---|---|
24. 집합과 맵(Set & Map) (0) | 2022.03.10 |
22. 배열 (0) | 2022.03.09 |
21. 컬렉션의 개요 (0) | 2022.03.09 |
20. 형 변환 (0) | 2022.03.08 |