Kotlin 변수 묶기 Pair, Triple
Notepad96
·2020. 10. 8. 16:35
1. 2개의 변수 묶기 - Pair
data class Pair<out A, out B> (val first: A, val second: B)
Pair 클래스는 다음과 같이 정의되어 있다.
Pair 클래스는 data class로서 2개의 변수를 묶어 사용하기 유용하다.
fun main() {
var a: Pair<Int, String> = Pair(3, "Kim")
var b: Pair<Int, String> = 1 to "Lee"
println(b.toString())
b = b.copy(first = 5, second = "god") // 값 변경
if(a.first > b.first) println("a turn")
else println("b turn")
}
pair 변수를 생성하기 위해서는 Pair 생성자를 사용하거나 to를 사용할 수 있다.
toString을 호출하면 (원소1, 원소2) 형태로 반환해준다.
첫 번째 원소는 first를 통하여 두 번째 원소는 second를 통하여 접근할 수 있다.
+) first와 second는 val로 선언되어 있어 읽기는 가능하지만 쓰기는 불가능하다.
따라서 값을 변경하기 위해서는 copy를 사용하여 복사하는 것이지만 마치 값을 변경한 것처럼 할 수 있다.
2. 3개의 변수 묶기 - Triple
data class Triple<out A, out B, out C> (val first: A, val second: B, val third C)
Triple 또한 data class로 정의되어있다.
Triple은 3개의 변수를 묶어 이용하기 유용하다.
fun main() {
var a: Triple<Int, String, Double> = Triple(1, "Kim", 5.0)
var b: Triple<Int, String, Double> = Triple(1, "Kim", 5.0)
println(b.toString())
println("${a.first} | ${a.second} | ${a.third}")
b = b.copy(first = 4, second = "Lee", third = 6.0)
if(a.first == b.first) println("equal")
else println("diff")
}
Triple을 사용하여서 변수를 초기화 한다.
각 원소들은 first, second, third를 통하여 접근할 수 있다.
Triple을 보면 data class로서 equals()가 자동으로 재정의되어 있다. 따라서 비교 연산자를 사용하여 간편하게 동일한지 비교할 수도 있다.
+) Pair과 마찬가지로 Triple에서도 first, second와 third가 val로 선언되어 있어 읽기는 가능하지만 쓰기는 불가능하다.
따라서 값을 변경하기 위해서는 copy를 사용하여 복사하는 것이지만 마치 값을 변경한 것처럼 할 수 있다.
3. 참 조
'Kotlin > Collections' 카테고리의 다른 글
Kotlin list for문 - index loop (0) | 2020.11.22 |
---|---|
Kotlin List, MutableList 추가, 삭제, 프로퍼티 (0) | 2020.11.22 |
Kotlin ArrayList<Int> vs. IntArray - 리스트, 배열 (0) | 2020.11.21 |
Kotlin sort 정렬 오름차순, 내림차순, 임의 순 (0) | 2020.10.11 |
Kotlin JS sort 정렬 오름차순, 내림차순, 임의 순 (0) | 2020.10.09 |