본문 바로가기
Kotlin Language/Kotlin 기본 문법

Kotlin(코틀린) - 배열(Array, ArrayOf, Method) 메소드 사용법

by Classic Master 2023. 11. 29.
728x90

Array 란?

메모리 속에 연속적인 공간을 만들어 작동하는 정적인 자료구조이며, 이러한 특성으로 인해 Array는 생성 시 크기를 지정하고 만들어집니다. 생성된 이후는 크기의 조절이 불가능합니다.

Array 배열의 특징

연속적인 공간을 가지고 있기 때문에, 검색 속도가 빠릅니다.

생성 이 후 공간을 추가하거나, 제외하는 크기 조절이 불가능합니다.


배열을 통한 메소드 다루기

배열에서 같이 사용할 수 있는 기본적인 메소드를 소개합니다.

자주 사용되는 것 위주로 적었습니다.

 

 

.size

  • 배열의 크기를 보여줍니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.size) // 4
println(array2.size) // 3

 

 

.reversed

  • 배열을 거꾸로 뒤집어 반환합니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.reversed()) // [5, 3, 2, 1]
println(array2.reversed()) // [3, 2, 1]

 

.lastIndex

  • 배열의 마지막 인덱스를 반환합니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.lastIndex) // 3 
println(array2.lastIndex) // 2
// 자리값은 0부터 시작하기 때문에 출력이 3, 2가 출력됩니다.

 

.contentToString()

  • 배열을 String으로 만들어 줍니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.contentToString()) // [1, 2, 3, 5]
println(array2.contentToString()) // [1, 2, 3]

 

.contentDeepToString()

var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.contentDeepToString())
println(array2.contentDeepToString())

 

.sum()

  • 배열의 값을 더해줍니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.sum()) // 11
println(array2.sum()) // 6

 

.average()

  • 배열의 평균값을 반환합니다.
var array: Array<Int> = arrayOf(1, 2, 3, 5)
var array2 = arrayOf(1, 2, 3)
println(array.average()) // 2.75
println(array2.average()) // 2.0

 

.sort()

  • 배열을 정렬해줍니다.
var array: Array<Int> = arrayOf(7, 2, 3, 5)
var array2 = arrayOf(3, 2, 1)
array.sort() // 밖에서 정리를 합니다.
array2.sort()
println(array.contentToString()) //[2, 3, 5, 7]
println(array2.contentToString()) // [1, 2, 3]

 

sortedArray() , sortedArrayDescending()

  • 오름차순 / 내림차순하여 새로운 배열 생성
var array: Array<Int> = arrayOf(7, 2, 3, 5)
var array2 = arrayOf(3, 2, 1)
var array3 = array.sortedArray()
var array4 = array2.sortedArray()
println(array.contentToString())[7, 2, 3, 5]
println(array3.contentToString())[2, 3, 5, 7]
println(array4.contentToString())[1, 2, 3]

 

Array -> List 형변환

  • Array의 형태를 List로 변환하는 방법
var array: Array<Int> = arrayOf(7, 2, 3, 5)
var array2 = arrayOf(3, 2, 1)
val array11 : List<Int> = array.toList() // [7, 2, 3, 5]
val array22 : List<Int> = array2.sorted() // [1, 2, 3] 
출력 값은 같지만 형태는 List로 변환되었다.

 

 


 

코틀린 배열 선언 방법

arrayOf()

가장 기본적인 방법으로 값을 직접 입력하여 배열을 생성하는 방법입니다. 

var array: Array<Int> = arrayOf<Int>(1, 2, 3)

 

  • array라는 이름으로 변수를 만들었고, 변수 타입은 Int 타입을 선언했습니다.
  • arrayOf 에 1,2,3이라는 3개의 값을 넣었습니다.
var array: Array<Int> = arrayOf(1, 2, 3)
 // 이처럼 앞에서 Int를 선언하면 뒤에서 생략가능합니다. [ 코틀린 추상 ]

 

arrayOf() 자료형

val arr = arrayOf(1,2,3)
val arr2 = arrayOf("test","test2")
  • 자료형 형식으로도 사용 가능합니다.

arrayOfNulls(size :Int)

Array의 크기 값을 임의로 지정해주면 그만큼 null이 포함하고 있는 배열을 생성합니다.

val arrayOfNulls : Array<Int?> = arrayOfNulls(5) 
println(arrayOfNulls.contentToString()) // 출력 : [null, null, null, null, null]

emptyArray() 

  • 크기가 Null이 아닌 0을 가지고 있는 Array를 생성합니다. 아무런 값도 들어가 있지 않습니다.
val emptyArray : Array<Int> = emptyArray()
println(emptyArray.contentToString()) // []

Lambda(람다식)을 사용한 Array(size: Int, init: (int) -> T)

  • 코틀린에서는 람다식을 사용하여 Array를 짧고 간결하게 만들 수 있습니다.
val arrayLambda: Array<Int> = Array(5) { index -> index }
ex)
val arrayLambda: Array<Int> = Array(5) { i -> i * 2 }
println(arrayLambda.contentToString()) // 출력값 : [0, 2, 4, 6, 8]
반응형

 

 


Array 사용 예제

var array1 = Array<Int>(2, {0}) //초기값을 0으로 하는 사이즈 2인 1차원 배열
var array2 = Array<Int>(2, { Array<Int>(2, {0}) }) //초기값을 0으로 하는 2x2인 2차원 배열

// 배열 선언시
var stringArray = Array<String>(2, {""}) // String 타입배열
var charArray = CharArray(3, {'a'}) // Char 타입배열
var intArray = IntArray(3) // Int 정수타입배열
var longArray = LongArray(3) // Long 정수타입배열
var floatArray = FloatArray(3, {1.0f}) // Float 타입배열
var doubleArray = DoubleArray(3) // Double 타입배열
var booleanArray = BooleanArray(3) // Boolean 타입배열

var anyArray = arrayOf(1, "값", true, 12.2) // 여러가지 타입이 들어간 배열

var stringFunArray = arrayOfNulls<String>(2) // Null값이 들어간 String 배열
var intFunArray = intArrayOf(1,2,3) // 함수로 만든 Int 배열
var charFunArray = charArrayOf('a','b') // 함수로 만든 Char 배열
var floatFunArray = floatArrayOf(1.0f, 2.0f) // 함수로 만든 Float 배열
var doubleFunArray = doubleArrayOf(2.0, 3.0) // 함수로 만든 Double 배열
var booleanFunArray = booleanArrayOf(true, false, true) // 함수로 만든 Boolean 배열
728x90
반응형