YSHUSH

배열 본문

Coding/Kotlin

배열

코딩; 2022. 1. 24. 16:39

배열

자바에서

final int array[] = { 1, 2, 3 };

코틀린에서

val array = intArrayOf(1, 2, 3)

이렇게 쓴다.

 

다양하게 출력해보기

println(array)      // 주소값 나옴
println(array[1])
println(Arrays.toString(array))     // -> java
println(array.contentToString())    // -> kotlin

자바와 코틀린 문법 모두 출력 가능하다.

 

contentToString

println(배열.contentToString())을 하게되면 모든 값을 출력할 수 있다.

var array1 = arrayOf(1, 1.23, "hello", true)
println(array1.contentToString())
println(array1[2])

 

size:10개, 33으로만 이루어진 배열

var array2 = Array(10, {33})
for (n in array2){
    println(n)
}
println(array2.contentToString())

 

size:10개, 1부터 10까지로 이루어진 배열

var i = 1
var array3 = Array(10, {i++})
println(array3.contentToString())

 

generic을 써서 형태를 정해준다.

var array4 = arrayOf<Int>(10, 20, 30)
array4.forEach { println(it) }  // it -> iterator

var array5 = arrayOf<String>("일", "이", "삼")
array5.forEach { println(it) }

 

다양하게 배열을 출력해보기

val array = intArrayOf(1, 2, 3, 4, 5)

println("${array.contentToString()}")			// 배열로 출력		결과 = [1, 2, 3, 4, 5]
println("${array.size}")				// 배열의 갯수 출력  	결과 = 5
println("${array.sum()}")				// 배열의 합을 출력  	결과 = 15

 

array.indices로 index넘버를 얻을 수 있다.

for(i in array.indices){    // index 넘버를 출력
    println("$i : ${array[i]}")
}
/*
//결과
0 : 10
1 : 2
2 : 3
3 : 4
4 : 5
*/

 

Filter

요소를 간단하게 골라낼 수 있다

val array = arrayOf(1, -2, 3, 4, -5, 0)

// 0보다 큰 요소(element)를 골라내기
array.filter { e -> e > 0 }.forEach{ e -> print("$e ") }
println()

// 배열로 저장
val result = array.filter { e -> e > 0 }
println(result)

val fruits = arrayOf("banana", "pear", "apple", "kiwi", "avocado")
fruits
//    .filter { it.startsWith("a") }    // 맨 앞 글자가 'a'
    .sortedBy { it }            // 오름차순으로 정렬
//    .sortedByDescending { it }  // 내림차순으로 정렬
    .map { it.toUpperCase() }
    .forEach{ println(it) }
    
    println(fruits.contains("apple"))

 

When  =  조건절

when{   // 조건절
    "apple" in fruits -> println("Apple이 있습니다.")
}

val products = arrayOf(
    Product("Mouse", 3000.0),
    Product("keyboard", 5500.0),
    Product("Monitor", 250000.0),
    Product("Tablet", 180000.0)
)

products.sortedBy { it.price }.forEach { println("${it.name}, ${it.price}") }
products.forEach { println("${it.name}, ${it.price}") }
// dto, vo
class Product(val name:String, val price: Double)

코틀린에서는 자바처럼 게터, 세터, 생성자를 쓸 필요 없이 이렇게만 써주면 dto, vo완성!

'Coding > Kotlin' 카테고리의 다른 글

함수  (0) 2022.01.25
Exception  (0) 2022.01.25
미니게임(Random Number 찾기)  (0) 2022.01.24
제어문(if, for, switch, while)  (0) 2022.01.24
변수와 상수  (0) 2022.01.24