[Kotlin]배열 arrayOf/IntArray/intArrayOf

dada·2021년 8월 24일
1

Kotlin

목록 보기
4/14
post-thumbnail

✅Kotlin 배열

  • 코틀린 배열도 자바 배열처럼 길이(size) 변경 불가
    size는 값 갯수!!! 인덱스 마지막 번호 아닌거 항상 주의

  • 코틀린에서 배열은 타입 인자를 갖는 Array클래스로 표현

  • 자바의 원시 타입 자료형은 코틀린의 배열 클래스 타입 인자로 사용할 수 없음

  • 따라서 자바의 원시 타입 자료형을 인자로 갖는 배열을 표현하기 위해서 각 원시 타입 자료형에 대응하는 클래스를 제공.
    이 클래스 역시 {자료형}+arrayOf() 메서드를 이용해서 입력받은 인자로 구성된 배열을 생성 가능

✅배열 생성

class IntArrayclass Array
(size: Int, init: (Int) -> Int)(size: Int, init: (Int) -> T)
(size: Int)
  • 공간할당:Array 클래스/{자료형}Array 클래스

자바

int[] arr2=new int[3]  

코틀린

    var arr = IntArray(10)
    var arr2 = IntArray(10, { i -> i + 3 }) //공간할당+인자
    var arr3=Array(10, {i->1})
    var arr4=Array(10, {0})  //0으로 초기화
    var arr5=Array(4,{1;2;3;4}) //;으로 해야됨
  //람다를 활용한 배열 만드는 코드에서 Array를 IntArray로 해도 당연히 가능
  

arrayOfintArrayOf
fun arrayOf( /vararg elements: T): Arrayfun intArrayOf( /vararg elements: Int): IntArray
  • 값 넣기

자바

int[] arr={1,2,3,4}  

코틀린

  var arr=arrayOf<Int>()  //빈배열 생성가능하지만 타입생략 불가
  var arr=intArrayOf()  //빈배열 생성 가능
  var arr2 = arrayOf<Int>(1, 2, 3, 4)  //Int타입만 가능
  var arr3 = arrayOf(1, 2, "응아니", '신') //지네릭스 생략 시 모든 타입
  var arr45 = intArrayOf(1, 2, 3, 4)

✅배열 꺼내기:get()

    val arrvalue2 = arr3.get(3)  //배열명.get(인덱스)
    val arrvalue = arr[2]        //배열명[인덱스]
  //배열 범위 넘어가면 java.lang.ArrayIndexOutOfBoundException 발생

✅배열 값 바꾸기:set()

   val arrvalue3 = arr.set(0, 24)
    arr[0] = 3

✅배열 전체 출력

   val arrvalue4=intArrayOf(1,2,3,4)
   println(arrvalue4)  //자바랑 마찬가지로 배열 참조번지 출력됨
   for(item in arrvalue4){
   println(arrvalue4)}  //향상된 for문으로 출력
profile
'왜?'라는 물음을 해결하며 마지막 개념까지 공부합니다✍

0개의 댓글