List (Mutable, Immutable)
Mutable vs Immutable
まず、この用語はどこで使われていますか.
コトリンにとって,これは集合配列を区別するための標準的な概念である.
Mutable(可変)Immutable(不変)から.
簡単に言えば、Read&WriteとRead Only
例を見て考えましょう.
不変の例
List< t >
fun main(args:Array<String>){
val list = listOf(1,2,3,"String")
// size
println(list.size)
// 특정 값(value)의 존재 유무 (Boolean)
if(list.contains(1)){
println(true)
}else{
println(false)
}
// 특정 값(value)의 위치 추출
println(list.indexOf(2))
// 특정 위치(index)의 값(value)의 추출
println(list[2])
}
この場合、リストにコンテンツ(書き込み)を追加または削除することはできません.
特定の値があるかどうか
list.contains("int")
特定の値を抽出する場所
list.indexOf("String or Int")
特定の場所の値を抽出
println(list[1])
リストのindex 1から何を選択しますか.
MutableList
val list = mutableListOf(1,2,3,"String")
// size
println(list.size)
// 특정 값(value)의 존재 유무 (Boolean)
if(list.contains(1)){
println(true)
}else{
println(false)
}
// 특정 값(value)의 위치 추출
println(list.indexOf(2))
// 특정 위치(index)의 값(value)의 추출
println(list[2])
var s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.add("추가된 변수")
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.removeAt(0)
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.addAll(listOf("추가1", "추가2", 2,3,4))
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
}
#### 근데 여기부터 왜 주석처리가 되버렸지
기존의 List의 읽기기능은 이미 가지고있다.
그렇다면 쓰기는 어떨까?
추가
list.add("넣을것")
인덱스 순서는 해당리스트의 끝에 추가된다.
list.add(인덱스위치 , "넣을것")
인덱스 위치에 넣는다.
list.addall(인덱스위치, "넣을것")
addall을 이용하면 리스트안에 collection을 넣을수 있다.
list.set(인덱스위치,"넣을것")
리스트의 인덱스위치에 존재하는걸 넣을것으로 바꿔준다.
list[인덱스위치] = "넣을것"
위와 같은기능.
list.clear() ---> 리스트안의 내용이 전부 삭제되고 null로 바뀐다.
list.remove("뺄것")
위치에 상관없이 뺄것을 빼버린다.
list.removeAt(인덱스위치)
인덱스 위치에 존재하는 요소를 제거한다.
list.removeall(Collection)
Collection을 인자로 받으며 실행되고, 리스트안에 컬렉션의 요소중 일치하는것이 있으면 제거한다.
**공부를하다보니 list.size 가 나왔다 . 파이썬의 len과 같은것.**
**mulist.retainAll(list) mulist와 list의 교집합을 나타낸다.**
Reference
この問題について(List (Mutable, Immutable)), 我々は、より多くの情報をここで見つけました
https://velog.io/@silmxmail/List-Mutable-Immutable
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
List< t >
fun main(args:Array<String>){
val list = listOf(1,2,3,"String")
// size
println(list.size)
// 특정 값(value)의 존재 유무 (Boolean)
if(list.contains(1)){
println(true)
}else{
println(false)
}
// 특정 값(value)의 위치 추출
println(list.indexOf(2))
// 특정 위치(index)의 값(value)의 추출
println(list[2])
}
この場合、リストにコンテンツ(書き込み)を追加または削除することはできません.特定の値があるかどうか
list.contains("int")
特定の値を抽出する場所
list.indexOf("String or Int")
特定の場所の値を抽出
println(list[1])
リストのindex 1から何を選択しますか.
MutableList
val list = mutableListOf(1,2,3,"String")
// size
println(list.size)
// 특정 값(value)의 존재 유무 (Boolean)
if(list.contains(1)){
println(true)
}else{
println(false)
}
// 특정 값(value)의 위치 추출
println(list.indexOf(2))
// 특정 위치(index)의 값(value)의 추출
println(list[2])
var s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.add("추가된 변수")
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.removeAt(0)
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
list.addAll(listOf("추가1", "추가2", 2,3,4))
s = list.size
for(i in 0 until s){
print(list[i])
print(" ")
}
println()
}
#### 근데 여기부터 왜 주석처리가 되버렸지
기존의 List의 읽기기능은 이미 가지고있다.
그렇다면 쓰기는 어떨까?
추가
list.add("넣을것")
인덱스 순서는 해당리스트의 끝에 추가된다.
list.add(인덱스위치 , "넣을것")
인덱스 위치에 넣는다.
list.addall(인덱스위치, "넣을것")
addall을 이용하면 리스트안에 collection을 넣을수 있다.
list.set(인덱스위치,"넣을것")
리스트의 인덱스위치에 존재하는걸 넣을것으로 바꿔준다.
list[인덱스위치] = "넣을것"
위와 같은기능.
list.clear() ---> 리스트안의 내용이 전부 삭제되고 null로 바뀐다.
list.remove("뺄것")
위치에 상관없이 뺄것을 빼버린다.
list.removeAt(인덱스위치)
인덱스 위치에 존재하는 요소를 제거한다.
list.removeall(Collection)
Collection을 인자로 받으며 실행되고, 리스트안에 컬렉션의 요소중 일치하는것이 있으면 제거한다.
**공부를하다보니 list.size 가 나왔다 . 파이썬의 len과 같은것.**
**mulist.retainAll(list) mulist와 list의 교집합을 나타낸다.**
Reference
この問題について(List (Mutable, Immutable)), 我々は、より多くの情報をここで見つけました https://velog.io/@silmxmail/List-Mutable-Immutableテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol