코딩 기록/Kotlin
Kotlin에서 list, array, MutableList 사용하는 예시 / 리스트 생성하기 / lisfOfNotNull 만들기 / index찾기 / 일반 리스트 가변형 리스트로 변환 / list->array 전환 / array->list 전환
NomadHaven
2022. 1. 27. 00:01
fun main(args: Array<String>) {
//collection 수집 ArrayList LinkedList HashMap TreeMap
//추가, 삭제 불가
var numbers: List<Int> = listOf<Int>(1,2,3,4,5)
for(n in numbers) print("$n") //출력값: 12345
println()
var names:List<String> = listOf<String>("one","two","three")
for(name in names){
println(name)
}
/*
출력값
one
two
three
*/
println(names.size) //출력값: 3
println(names.get(1)) //출력값: two
println(names.indexOf("three")) //출력값:2
println(names.contains("two")) //있다 없다에 대한 해답 출력값: true
//여러가지 타입
var mixedType = listOf("hello",123,true,123.455)
for (m in mixedType){
println(m)
}
/*
출력값:
hello
123
true
123.455
*/
//리스트만을 생성
val emptyList = emptyList<String>()
//null이 아닌 요소(element)만을 골라서 수집
val nonNullList: List<Int> = listOfNotNull(2,45,3,null,5,7,null)
println(nonNullList) //출력값: [2, 45, 3, 5, 7]
println(nonNullList[2]) //출력값: 3
//가변형 목록
val strList: ArrayList<String> = arrayListOf<String>("hello","world","hi","bye","sayonara")
strList.add("kotlin")
println(strList) //kotlin이 추가되어서 출력 [hello, world, hi, bye, sayonara, kotlin]
//가변형 List
val mutableListNames:MutableList<String> = mutableListOf<String>("king","Queen","princess")
mutableListNames.add("park") //추가
println(mutableListNames) //출력값:[king, Queen, princess, park]
mutableListNames.removeAt(2) //삭제
println(mutableListNames) //출력값: [king, Queen, park]
mutableListNames[0] = "prince" //수정
println(mutableListNames) //출력값:[prince, Queen, park]
val mutableListMix = mutableListOf("android","react",5,6,true)
println(mutableListMix) //출력값: [android, react, 5, 6, true]
//추가 삭제 불가했던 리스트를 가변형 리스트로 변경할 경우
val newNames = names.toMutableList() // 가변형 리스트로 변경
newNames.add("four")
println(newNames) // 출력값: [one, two, three, four] four가 추가되었다.
println()
val fruits = listOf("apple","banana","kiwi")
for(item in fruits){
println(item) }
/*
출력값:
apple
banana
kiwi
*/
//index와 같이 출력
for(index in fruits.indices){
println("fruits[$index]: ${fruits[index]}")
}
/*
출력값
fruits[0]: apple
fruits[1]: banana
fruits[2]: kiwi
*/
// while
var index=0
while(index < fruits.size){
println("fruits[$index]: ${fruits[index]}")
index++
}
/*
출력값
fruits[0]: apple
fruits[1]: banana
fruits[2]: kiwi
*/
//index 찾기
var findIndex = -1 //못찾았을 때 수
for(i in 0..fruits.size-1 step(1) ){
if(fruits.get(i)==="banana"){
findIndex = i
break
}
}
println("$findIndex ${fruits[findIndex]}") //출력값: 1 banana
//object 관리
val list:MutableList<Duck> = mutableListOf()
//참고 : class Duck(val name:String, val age:Int)
val duck = Duck("Donald1",2)
list.add(duck)
list.add(Duck("Donald2",3))
list.add(Duck("Donald3",5))
for(d in list){
println(d.name)
}
/*
출력값
Donald1
Donald2
Donald3
*/
//list -> array
val vlist: List<String> = listOf("a", "b", "c", "d", "e")
val varray: Array<String> = vlist.toTypedArray()
varray.forEach {
print(it) }
//출력값: abcde
println()//그냥 개행
//array -> list
val aarray = arrayOf(1,2,3,4,5)
val alist = aarray.toList()
alist.forEach {
print("${it}, ")
}
//출력값:1,2,3,4,5
}
class Duck(val name:String, val age:Int)