이번에는 대표적인 콜렉션(Collection)인 list와 키와 값을 가지는 저장 클래스인 map를 살펴보겠습니다. 코틀린에서는 Java를 포함한 다른 언어들과 다르게 list와 map을읽기 전용(read only)객체와수정 가능한(mutable)객체 두 가지로 형태로 나누어 제공합니다.
List
리스트를 만들 때 사용하는 함수는listOf입니다. 이렇게 생성 시 읽기 전용 모드가 됩니다.
읽기 모드로 생성 시 어차피 변경이 불가능하기 때문에 val로 선언해주는 것이 좋을 것 같습니다.
22
val name =24
for (i in 0..name.size-1) {
23
}
// name.add(우리카지노추천;Choi우리카지노추천;) 읽기 전용이라 추가 불가
}
Kim
Hong
Park
수정 가능하게 만들려면mutableListOf를 사용하면 됩니다.
fun main(args: Array<String) {
var name =mutableListOf<String(우리카지노추천;Kim우리카지노추천;, 우리카지노추천;Hong우리카지노추천;, 우리카지노추천;Park우리카지노추천;)
name.add(우리카지노추천;Choi우리카지노추천;)
name.add(우리카지노추천;Seo우리카지노추천;)
for (i in 0..name.size-1) {
println(name.get(i))
}
}
Kim
Hong
Park
Choi
Seo
(특이점) val name = mutableListOf<String(우리카지노추천;Kim우리카지노추천;, 우리카지노추천;Hong우리카지노추천;, 우리카지노추천;Park우리카지노추천;)로 선언 시에도 name.add는 가능합니다. 다만 name이 reassign 될 수 없을 뿐입니다.왜냐하면 val은 변수(name)가 불변하도록 하는 것이지 객체가 불변하도록 하는 것이 아니기 때문입니다.
Java에서도 final 변수이지만 arrayList의 데이터는 조작이 가능합니다.
import java.util.ArrayList;
public class TestJava {
public static void main(String[] args) {
final ArrayList<String arr = new ArrayList<();
arr.add(우리카지노추천;TEST1우리카지노추천;);
arr.add(우리카지노추천;TEST2우리카지노추천;);
arr.add(우리카지노추천;TEST3우리카지노추천;);
for (String a : arr) {
System.out.println(a);
}
}
}
TEST1
TEST2
TEST3
콜렉션에는 null을 필터 할 수 있는 함수인filterNotNull()이 존재합니다. 다음과 같이 null이 존재하면 null을 제외한 엘리먼트만 출력되는 것을 볼 수 있습니다.
fun main(args: Array<String) {
val name = listOf(우리카지노추천;Kim우리카지노추천;, 우리카지노추천;Hong우리카지노추천;,null, 우리카지노추천;Park우리카지노추천;)
for (i in name.filterNotNull()) {
println(i)
}
}
Kim
Hong
Park
또한 콜렉션에서는 +, - 를 사용하여 엘리먼트를 추가 및 삭제할 수 있습니다.
fun main(args: Array<String) {
val name = listOf(우리카지노추천;Kim우리카지노추천;, 우리카지노추천;Hong우리카지노추천;, null, 우리카지노추천;Park우리카지노추천;)
for (i in name.filterNotNull()) {
println(i)
}
println(우리카지노추천;-----우리카지노추천;)
var newName = name - 우리카지노추천;Hong우리카지노추천;
for (i in newName.filterNotNull()) {
println(i)
}
println(우리카지노추천;-----우리카지노추천;)
newName = name + 우리카지노추천;Choi우리카지노추천;
for (i in newName.filterNotNull()) {
println(i)
}
}
474
Hong
Park
-----
Kim
Park
-----
Kim
Hong
Park
Choi
Map
List와 유사하게mapOf로 읽기 전용,mutableMapOf로 수정 가능한 Map을 만들 수 있습니다.
fun main(args: Array<String) {
val name =mapOf(1 to 우리카지노추천;Kim우리카지노추천;, 3 to 우리카지노추천;Park우리카지노추천;)
for (i in name.keys) {
println(name.get(i))
}
for (i in name) {
println(name)
}
}
Kim
Park
{1=Kim, 3=Park}
{1=Kim, 3=Park}
fun main(args: Array<String) {
val name =mutableMapOf(1 to 우리카지노추천;Kim우리카지노추천;, 3 to 우리카지노추천;Park우리카지노추천;)
name.put(2, 우리카지노추천;Hong우리카지노추천;)
for (i in name.keys) {
println(name.get(i))
}
for (i in name) {
println(name)
}
}
Kim
Park
Hong
{1=Kim, 3=Park, 2=Hong}
{1=Kim, 3=Park, 2=Hong}
{1=Kim, 3=Park, 2=Hong}
또한 +, - 를 사용할 수 있는데 value으로는 안되며key로 가능합니다.
fun main(args: Array<String) {
val name = mapOf(1 to 우리카지노추천;Kim우리카지노추천;, 3 to 우리카지노추천;Park우리카지노추천;)