우선 코틀린에서 배열은 잘 사용안함 (c에서는 중요)
이런게 있다 정도만 알아두자
collection으로 충분함
배열을 초기값으로 줘야하는 안드로이드 adapter빼고는 그닥
mbti 선택할때도 배열쓰긴한다. (enfj, en…16개)
알아둘거 2가지 + 2가지
밑에 두개만 알아두자
IntArray,DoubleArray()이런거 알아 둘 필요없다
사용하는 이유
사용하는 곳
특징
사용법
사용하는 이유
사용하는 곳
특징
사용법
사용하는 이유
사용하는 곳
특징
사용법
val array1 = arrayOf(arrayOf("Aa", "Bb", "Cc", "Dd", "Ee"),
arrayOf("Ff", "Gg", "Hh", "Ii", "Jj"),
arrayOf("Kk", "Ll", "Mm", "Nn", "Oo")
//2차원 배열 선언
val array2 = Array(3,{IntArray(3,{2})}) //전부 2로 출력
//출력값
for ((i, row) in array2.withIndex()){
for ((j,column) in row.withIndex()){
print("[$i,$j] => $column\t")
}
println()
} //배열 선언
val array3 = Array(3,{ i -> IntArray(4,{j -> j + i*4})})
//출력값
for ((i, row) in array3.withIndex()){
for ((j,column) in row.withIndex()){
print("[$i,$j] => $column\t")
}
println()
}
//출력
0 1 2 3
4 5 6 7
8 9 10 11 fun main(){
var increment = 0
var twoArray= Array(3,{IntArray(3) { _ -> increment * increment++ } })
//var twoArray= arrayOf(intArrayOf(0,1,4), intArrayOf(9,16,25), intArrayOf(36,49,64))
for(i in twoArray.indices){
for(j in twoArray[i].indices){
// print("twoArray[$i][$j] = ${twoArray[i][j]}\t")
print("twoArray[$i][$j] = ${twoArray.get(i).get(j)}\t")
}
println()
}
println(Arrays.deepToString(twoArray))
println(twoArray)
}
/* 출력
twoArray[0][0] = 0 twoArray[0][1] = 1 twoArray[0][2] = 4
twoArray[1][0] = 9 twoArray[1][1] = 16 twoArray[1][2] = 25
twoArray[2][0] = 36 twoArray[2][1] = 49 twoArray[2][2] = 64
[[0, 1, 4], [9, 16, 25], [36, 49, 64]]
[[I@12edcd21
*/
fun main(args: Array<String>) {
val list1: List<Int> = List(3) { i -> i } // [0, 1, 2]
val list2: List<String> = listOf("하나", "둘", "셋") // [1, 2, 3]
val list3 = mutableListOf<Int>(1,2,3,4,5) // [1, 2, 3, 4, 5]
list1[0] = 3 // 수정 불가, 오류 발생
println(list1[0]) // 0
list3[1] = 8 // 데이터 수정
println(list3) // [1, 8, 3, 4, 5]
}
사용하는 이유
사용하는 곳
특징
사용법
fun main(args: Array<String>) {
val arr1 = ArrayList<Int>() // []
val arr2 = arrayListOf<Int>(1,2,3,4,5) // [1, 2, 3, 4, 5]
arr1.add(10)
arr1.add(20)
arr1.add(30) // 맨 뒤에 원소 삽입
println(arr1) // [10, 20, 30]
arr2.add(1,6) // 1번째 인덱스에 6삽입
println(arr2) // [1, 6, 2, 3, 4, 5]
}fun main(args: Array<String>) {
val arr1 = ArrayList<Int>() // []
arr1.add(10)
arr1.add(20)
arr1.add(30)
arr1.add(40) // 맨 뒤에 원소 삽입
println(arr1) // [10, 20, 30, 40]
arr1.remove(20) // 맨 앞에서 부터 20을 찾아 삭제
println(arr1) // [10, 30, 40]
arr1.removeAt(1) // 1번째 인덱스 위치의 데이터 삭제
println(arr1) // [10, 40]
arr1.removeFirst() // 맨 첫 번째 원소 삭제
arr1.removeLast() // 맨 마지막 원소 삭제
arr1.clear() // 배열 전체 비우기
}특징
사용법
val numbers = Array<Int>(10, { index -> index * index })
println("===>indices는 index를 순회하므로 numbers[index] 해야 값이 출력")
for (index in numbers.indices) {
print("${numbers[index]}\t")
}
println()
특징
사용법
println("===> withIndex()는 numbers 배열을 구조(객체)분해(index,value)을 순회하며 리턴")
for((index,value) in numbers.withIndex()){
print("(index$index 의 값은 $value),")
}
println()
// (index0 의 값은 0),(index1 의 값은 1),(index2 의 값은 4),(index3 의 값은 9),(index4 의 값은 16),(index5 의 값은 25),(index6 의 값은 36),(index7 의 값은 49),(index8 의 값은 64),(index9 의 값은 81),1차원 배열 모든 원소를 문자열로 나타내기
배열이름.contentToString
2차원 배열 모든 원소를 문자열로 나타내기
twoArray.contentDeepToString() = Arrays.deepToString(twoArray)
val arr = Array(3) { i -> IntArray(3) { it + i * 3 } }
println(arr.contentDeepToString()) //[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
println(arr.joinToString { it.contentToString() }) //[0, 1, 2], [3, 4, 5], [6, 7, 8]
println(arr.joinToString("\n") { it.joinToString(" - ") })
/*
0 - 1 - 2
3 - 4 - 5
6 - 7 - 8
*/
배열에 값 넣고 빼기