Hello, Android!

List 본문

Kotlin

List

lwndnjs93 2020. 7. 5. 17:55

List는 순서에 따라 정렬된 요소를 가지는 컬렉션이다

만약 값을 변경할 수 없는 list를 만들때는 listOf()

변경이 가능한 리스트의 경우 mutableListOf()를 사용한다

 

- listOf()

listOf함수는 제네릭 함수이며, 호출시 제네릭 타입을 지정하면 해당 타입의 데이터만 저장 가능하며

만약 타입을 지정하지 않으면 여러 타입을 동시에 저장할수 있다

 

리스트 name, age는 각각 String, Int로 타입이 정해져있기때문에 각자 지정된 타입만 매개변수로써 사용이 가능하다

friends리스트는 타입을 지정하지 않았기때문에 문자열, 정수 혼합하여 사용이 가능하다

list도 배열처럼 for문을 사용하여 데이터 순회가 가능하다

만약 리스트의 요소가 아닌 인덱스 번호를 순회하기 위해서는 indices 를 사용하면 배열의 인덱스 번호가 나온다

 

emptyList는 요소가 없는 빈 리스트를 만들때 사용한다

비어있는 리스트를 만들때는 타입추론이 불가능하기때문에, 타입을 명시해야한다

listOfNotNull은 리스트의 요소들 중에 null이 있다면 null을 제외한 리스트를 반환한다

list에서 사용하는 함수들로는 get, indexOf, subList, iterator 등이 있다

get()은 매개변수로 정수값을 받아 리스트의 해당 위치에 있는 요소를 반환한다

indexOf()는 매개변수로 요소를 받아 리스트에 해당 요소를 찾아 첫번째로 나오는 인덱스 번호를 반환한다

만약 없으면 -1을 반환한다

lastIndexOf()는 매개변수로 요소를 받아 리스트에 해당 요소를 찾아 마지막으로 나오는 인덱스 번호를 반환한다

만약 없으면 -1을 반환한다

contains()는 매개변수가 해당 리스트에 요소로써 존재한다면 true 없으면 false를 반환한다

subList()는 두개의 정수를 매개변수로 받으며, 두 매개변수에 해당하는 인덱스 범위의 요소를 반환한다

iterator()는 해당 리스트의 이터레이터를 반환한다

indexOf와 lastIndexOf는 각각 매개변수의 인덱스 번호를 반환하는데 

indexOf는 첫번째로 나오는 인덱스 번호, lastIndexOf는 마지막으로 나오는 인덱스 번호를 반환한다

indexOf를 호출하였을때는 첫번째로 Apeach가 들어있는 인덱스 번호인 4 가 반환되었고

lastIndexOf는 마지막으로 Apeach가 들어있는 인덱스 번호인 7이 반환되었다

subList에는 첫번째 매개변수로 0 두번째 매개변수로 friends.size 즉 리스트의 마지막 인덱스 번호를 매개변수로 넘겼다

 

iterator는 friends 리스트의 이터레이터를 반환받았다

이터레이터는 컬렉션을 처음부터 끝까지 순회가 가능하다

while문에서 사용된 hasNext()함수는 이터레이터의 다음 요소가 존재하는지 확인하여

존재한다면 true, 없으면 false를 반환한다

next()함수는 이터레이터의 다음 요소를 반환한다

 

- arrayListOf()

arrayListOf는 list와 유사하지만, 다른점으로는 요소의 추가, 삭제가 가능하다

배열에서처럼 [] 를 사용하여 접근, 수정이 가능하며

데이터를 추가하거나 삭제하는 경우는 add, remove 함수를 사용해야 한다

list에서 사용하였던 indexOf, lastIndexOf, subList등의 함수도 전부 동일하게 사용 가능하다

'Kotlin' 카테고리의 다른 글

Map  (0) 2020.07.12
Set  (0) 2020.07.11
문자열  (0) 2020.07.04
배열의 정렬과 필터링  (0) 2020.06.28
배열의 추가 잘라내기  (0) 2020.06.27