배열(Array) :
하나의 변수에 여러개의 값을 담을 수 있는 자료형
특징 :
ㅇ 배열 공간의 개수를 할당하거나 초기화 시에 데이터를 저장해두면 데이터의 개수만큼
배열의 크기가 결정 된다.
ㅇ 개수를 정해 놓고 사용해야하며, 중간에 개수를 추가하거나 제거할 수 없다.
ㅇ 배열은 다른 데이터 타입과 마찬가지로 변수에 저장해서 사용할 수 있다.
ㅇ 배열 객체는 Int, Long, Char 등의 타입 뒤에 Array를 붙여서 만든다.
ㅇ String은 Int나 Double 같은 기본 타입이 아니기 때문에 StringArray는 만들 수 없음. 그래서 아래와 같이 사용해야함
var stringArray = Array(10//해당 숫자만큼 빈 문자열로 된 배열 공간을 할당함, { item -> "" } )
Ex)
var dayArray = arrayOf("MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN")
배열을 선언한 변수명 뒤에 대괄호 [] 를 사용하고, 대괄호 안에 저장할 위치의 인덱스 번호를 작성하고 =를 사용하면 값을 입력할 수 있다.
배열명[인덱스] = 값
Ex)
student[0] = 90 // student라는 배열의 첫번째에 90을 입력함
set 함수를 사용해서 입력함
배열명.set(인덱스, 값)
Ex)
student.set(1,91) // student 배열의 두번째에 91를 입력함
배열에 있는 값 꺼내는 방법
저장 할 때와 마찬가지로 대괄호 안에 인덱스를 입력
배열명[인덱스]
Ex)
var seventhValue = intArray[6] // intArray의 7번째 값을 seventhValue 변수에 저장함
.get 함수 사용해서 꺼내는 방법
배열명.get(인덱스)
Ex)
var seventhValue = intArray.get(6) // intArray의 7번째 값을 seventhValue 변수에 저장함
컬렉션(Collection) :
처음 크기로 고정하지 않고 임의의 개수를 담을 수 있는 배열
동적 배열이라고도 함.
List, Map, Set 세가지가 있다.
Element (요소) :
컬렉션에 입력되는 값을 각각 Element라고 함
값이라고 해도 되지만 맵의 값을 가리키는 건지, 엘리먼트의 값을 가리키는 건지 혼동할 수 있어서
분리하는 것이 좋다.
list element = 리스트의 (값)
map element = 맵의 (키와 값)
.add(값) :
괄호 안의 값을 리스트에 추가함
값이 추가되면서 자동으로 리스트의 공간이 증가함
인덱스를 따로 지정하지 않아도 입력되는 순서대로 인덱스가 지정됨
.get(인덱스) :
괄호에서 지정한 인덱스의 값을 가져옴
.set(인덱스, “수정할 값”) :
괄호의 인덱스 값을 괄호 안의 값으로 수정함
.removeAt(인덱스) :
괄호에서 지정한 인덱스의 값을 삭제함
해당 값을 삭제하면, 그 뒤의 값부터 인덱스가 하나씩 감소하면서 빈자리의 인덱스로 이동함
.size :
컬렉션의 개수를 가져옴
괄호가 있으면 함수 없으면 프로퍼티
리스트는 저장되는 데이터에 인덱스를 부여한 컬렉션으로 중복된 값을 입력 할 수 있다.
Kotlin 에서는 리스트를 동적으로 사용하기 위해서 Mutable이라는 접두어를 붙여야한다.
배열과 같이 Of를 붙여서 사용할 수 있다.
List 생성하는 방법
mutableListOf()를 사용하면 된다.
빈 List 생성하는 방법
비어있는 List를 생성하면 데이터 타입을 추론할 수 없기 때문에 꼭 데이터 타입을 지정해주어야 함
var 변수명 = mutableListOf<컬렉션에 입력될 값의 타입>()
var stringList = mutableListOf<String>()
중복을 허용하지 않는 리스트
리스트와 유사하지만 인덱스로 조회할 수 없고, get함수를 지원하지 않는다
set은 값이 중복되지 않기 때문에, 인덱스를 지정하는 대신 값을 직접 입력하여 삭제한다.
set.remove("값")
Key와 Value의 쌍으로 입력되는 컬렉션
key는 인덱스와 비슷하지만 직접 입력해야한다
var map = mutableMapOf<String, String>() //key와 Value가 String인 맵을 생성
Map 에 값 추가하는 방법
.put 함수를 이용함
var map = mutableMapOf<String, String>() //key와 Value가 String인 맵을 생성
map.put("key1", "value1")
map.put("key1", "value1")
map.put("key1", "value1")
.put 함수에서 key값을 동일하게하고 값만 바꾸면 수정 가능
.remove(”key”) 로 값 삭제 가능