사전캠프 2일차

김재현·2024년 1월 24일

배열과 컬렉션

배열(Array): 하나의 변수에 여러 개의 정해진 값을 담을 수 있게 해주는 데이터 타입(배열은 변동이 없다)

var students = IntArray(10)
var longArray = LongArray(10)
var CharArray = CharArray(10)
var FloatArray = FloatArray(10)
var DoubleArray = DoubleArray(10)

기본 타입을 타입별로 10개의 빈 공간을 할당 하는 코드이다.

var dayArray = arrayOf("MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN")
위와 같이 arrayOf를 활용하여 직접 배열을 생성할 수도 있다.

그리고 배열 값을 사용하려면

배열명[인덱스]
배열명.get(인덱스) - 이런식으로 코드를 작성하면 된다

Log.d("Array", "1번째 dayArray 값은 ${dayArray[0]}입니다")
Log.d("Array", "6번째 dayArray 값은 ${dayArray.get(5)}입니다")

이런식의 형태가 된다

컬렉션(Collection): 컬렉션은 동적배열로 배열과는 다르게 처음 크기로 고정하지않고 임의로 개수를 담을 수 있다. 컬렉션은 리스트(List), 셋(Set), 맵(Map)으로 나눌 수 있다.

컬렉션 리스트를 사용한 예제로
var mutableList = mutableListOf("MON", "TUE", "WED") 값으로 컬렉션을 생성하고
(여기서 mutableList는 동적배열로 사용하기위해 필요한 코드입니다.)

Log.d("Collection", "mutableList의 첫 번째 값은 ${mutableList.get(0)}입니다")
${mutableList.get(0)}에서 get을 통해 값을 가져올 수 있습니다.
첫번째 값을 꺼내오면 "MON"가 나오면서 로그캣에 mutableList의 첫 번째 값은 MON입니다
이와 같은 출력 내용이 나오게 됩니다.
만약 값을 추가하려면 mutableList.add("추가하고픈 내용") 이렇게 추가할 수 있습니다.

다음은 셋(Set)에 관한 내용입니다.
먼저 셋은 인덱스로 조회가 불가하고 get 함수도 지원 불가합니다.
중복이 불가하다는 특징이 있어서

var set = mutableSetOf()

셋을 생성하고

set.add("JAN")
set.add("FEB")
set.add("MAR")
set.add("JAN")

만약 동일한 값을 추가해도 출력되지 않습니다.

Log.d("Collection", "Set 전체출력 = ${set}")

전체 데이터를 출력하면

Set 전체출력 = [JAN, FEB, MAR]

이런 식으로 동일한 값 "JAN"은 출력이 안되는 걸 확인할 수 있습니다.

다음은 맵(Map)입니다.
맵은 (key, value) 이렇게 키와 값의 쌍으로 입력되는 컬렉션입니다.

var map = mutableMapOf<String, String>()
map.put("key1", "value1")
map.put("key2", "value2")
map.put("key3", "value3")

빈 맵을 생성하고 값을 추가하면 이런 식이 나옵니다.

만약 value1의 값을 value4로 수정하려면 map.put("key1", "value4") 이렇게 수정해주면 됩니다.

위 사진처럼 만약 map.remove("key2") "key2"를 삭제하고
Log.d("Collection", "key2의 값은 ${map.get("key2")}입니다.") 이라는 코드를 작성하면
null 이라는 값이 출력됩니다.

오늘은 컬렉션에서 리스트, 셋, 맵에 관하여 배워보았습니다.
var로 작성된 변수도 전부 뮤터블이라는 것도 알았습니다.
아직 헷갈리는 것도 많고 최대한 기억하면서 참고하여 작성해봤습니다!

0개의 댓글