[Kotlin] 배열과 컬렉션

오리너구리·2024년 5월 17일
0

개발 공부 정리

목록 보기
2/9
post-thumbnail

배열(Array)

배열(Array) :

하나의 변수에 여러개의 값을 담을 수 있는 자료형

특징 :
ㅇ 배열 공간의 개수를 할당하거나 초기화 시에 데이터를 저장해두면 데이터의 개수만큼 
	 배열의 크기가 결정 된다.
ㅇ 개수를 정해 놓고 사용해야하며, 중간에 개수를 추가하거나 제거할 수 없다.
ㅇ 배열은 다른 데이터 타입과 마찬가지로 변수에 저장해서 사용할 수 있다.
ㅇ 배열 객체는 Int, Long, Char 등의 타입 뒤에 Array를 붙여서 만든다.

문자 배열에 빈 공간 할당하는 방법

ㅇ String은 Int나 Double 같은 기본 타입이 아니기 때문에 StringArray는 만들 수 없음. 그래서 아래와 같이 사용해야함

var stringArray = Array(10//해당 숫자만큼 빈 문자열로 된 배열 공간을 할당함, { item -> "" } )

ArrayOf() 를 사용해서 직접 String 값 할당하는 방법

Ex) 

var dayArray = arrayOf("MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN")

배열에 값 입력하는 방법

  1. 배열을 선언한 변수명 뒤에 대괄호 [] 를 사용하고, 대괄호 안에 저장할 위치의 인덱스 번호를 작성하고 =를 사용하면 값을 입력할 수 있다.

    배열명[인덱스] = 값
    
    Ex) 
    student[0] = 90 // student라는 배열의 첫번째에 90을 입력함
  2. set 함수를 사용해서 입력함

    배열명.set(인덱스,)
    
    Ex) 
    student.set(1,91) // student 배열의 두번째에 91를 입력함

배열에 있는 값 꺼내는 방법

  1. 저장 할 때와 마찬가지로 대괄호 안에 인덱스를 입력

    배열명[인덱스]
    
    Ex) 
    var seventhValue = intArray[6] // intArray의 7번째 값을 seventhValue 변수에 저장함
  2. .get 함수 사용해서 꺼내는 방법

    배열명.get(인덱스)
    
    Ex) 
    var seventhValue = intArray.get(6) // intArray의 7번째 값을 seventhValue 변수에 저장함

컬렉션(Collection)

컬렉션(Collection) :

처음 크기로 고정하지 않고 임의의 개수를 담을 수 있는 배열
동적 배열이라고도 함.
List, Map, Set 세가지가 있다.

Element (요소) :
컬렉션에 입력되는 값을 각각 Element라고 함
값이라고 해도 되지만 맵의 값을 가리키는 건지, 엘리먼트의 값을 가리키는 건지 혼동할 수 있어서 
분리하는 것이 좋다.

list element = 리스트의 (값)
map element = 맵의 (키와 값)

컬렉션 함수

.add(값) :

괄호 안의 값을 리스트에 추가함

값이 추가되면서 자동으로 리스트의 공간이 증가함

인덱스를 따로 지정하지 않아도 입력되는 순서대로 인덱스가 지정됨

.get(인덱스) :

괄호에서 지정한 인덱스의 값을 가져옴

.set(인덱스, “수정할 값”) :

괄호의 인덱스 값을 괄호 안의 값으로 수정함

.removeAt(인덱스) :

괄호에서 지정한 인덱스의 값을 삭제함

해당 값을 삭제하면, 그 뒤의 값부터 인덱스가 하나씩 감소하면서 빈자리의 인덱스로 이동함

컬렉션 프로퍼티

.size :

컬렉션의 개수를 가져옴

++ 함수와 프로퍼티 구분 방법

괄호가 있으면 함수 없으면 프로퍼티

1. List

리스트는 저장되는 데이터에 인덱스를 부여한 컬렉션으로 중복된 값을 입력 할 수 있다.

Kotlin 에서는 리스트를 동적으로 사용하기 위해서 Mutable이라는 접두어를 붙여야한다.

배열과 같이 Of를 붙여서 사용할 수 있다.

List 생성하는 방법

mutableListOf()를 사용하면 된다.

빈 List 생성하는 방법

비어있는 List를 생성하면 데이터 타입을 추론할 수 없기 때문에 꼭 데이터 타입을 지정해주어야 함

var 변수명 = mutableListOf<컬렉션에 입력될 값의 타입>()
var stringList = mutableListOf<String>()

2. Set

중복을 허용하지 않는 리스트

리스트와 유사하지만 인덱스로 조회할 수 없고, get함수를 지원하지 않는다

set은 값이 중복되지 않기 때문에, 인덱스를 지정하는 대신 값을 직접 입력하여 삭제한다.

set.remove("값")

3. Map

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”) 로 값 삭제 가능

profile
오리너구리입니다

0개의 댓글