Kotlin MutableList接口
Kotlin MutableList
是一個接口和通用的元素集合。 MutableList
接口本質上是可變的。 它繼承了Collection <T>
類的形式。 MutableList
接口的方法支持讀寫功能。 當MutableList
中聲明瞭元素,就可以添加更多元素或刪除它們,因此MutableList
沒有固定的大小長度。
要使用MutableList
接口,需要使用mutableListOf()
或mutableListOf <E>()
函數。
MutableList
的元素遵循插入順序來排序,並與數組具有相同的索引號。
MutableList接口聲明
interface MutableList<E> : List<E>, MutableCollection<E> (source)
Kotlin MutableList函數
MutableList
接口中有幾種方法可用,下面提到MutableList
接口的一些方法。
方法
描述
abstract fun add(element: E): Boolean
它將給定元素添加到集合中。
abstract fun add(index: Int, element: E)
它在指定的索引處添加元素。
abstract fun addAll(elements: Collection<E>): Boolean
它將給定集合的所有元素添加到當前集合中。
abstract fun clear()
它會刪除此集合中的所有元素。
abstract fun listIterator(): MutableListIterator<E>
它在當前列表中以適當的順序返回元素的列表迭代器。
abstract fun listIterator(index: Int): MutableListIterator<E>
它以適當的順序從列表中的元素返回從指定索引開始的列表迭代器。
abstract fun remove(element: E): Boolean
如果指定的元素存在於當前集合中,它將刪除它。
abstract fun removeAll(elements: Collection<E>): Boolean
它會刪除當前列表中也存在於指定集合中的所有元素。
abstract fun removeAt(index: Int): E
它從列表中刪除給定索引處的元素。
abstract fun retainAll(elements: Collection<E>): Boolean
它保留當前集合中存在於給定集合中的所有元素(交集)。
abstract operator fun set(index: Int, element: E): E
它替換元素並在給定索引處添加指定元素。
abstract fun subList(fromIndex: Int, toIndex: Int): MutableList<E>
它從當前列表返回從指定fromIndex
(包括)到toIndex
(不包括)的列表的一部分。
Kotlin MutableList示例1
下面來看看如何使用mutableListOf()
函數示例來遍歷列表中的元素。
fun main(args: Array<String>){
var mutableList = mutableListOf("Ajax","Maxsu","Praka","Maxsu")
for(element in mutableList){
println(element)
}
println()
for(index in 0..mutableList.size-1){
println(mutableList[index])
}
}
執行上面示例代碼,得到以下結果 -
Ajax
Maxsu
Praka
Maxsu
Ajax
Maxsu
Praka
Maxsu
Kotlin MutableList示例2
MutableList
接口的mutableListOf()
函數提供了在聲明後添加元素的功能。 MutableList
也可以聲明爲空並稍後添加元素,但在這種情況下需要定義泛型類型。 例如:
fun main(args: Array<String>){
var mutableList1 = mutableListOf("Ajax","Vijax")
mutableList1.add("Praka")
mutableList1.add("Vijax")
var mutableList2 = mutableListOf<String>()
mutableList2.add("A1")
mutableList2.add("A2")
mutableList2.add("A3")
for(element in mutableList1){
println(element)
}
println()
for(element in mutableList2){
println(element)
}
}
執行上面示例代碼,得到以下結果 -
Ajax
Vijax
Praka
Vijax
A1
A2
A3
Kotlin MutableList示例3
更具體地說,可以提供MutableList
接口的泛型類型,例如:mutableListOf <Int>()
,mutableListOf <String>()
,mutableListOf <Any>()
。 mutableListOf <Int>()
只接受整數值,mutableListOf <String>()
只接受String
值,mutableListOf <Any>()
同時接受不同的數據類型值。看看這個例子。
fun main(args: Array<String>){
var mutableListInt: MutableList<Int> = mutableListOf<Int>()
var mutableListString: MutableList<String> = mutableListOf<String>()
var mutableListAny: MutableList<Any> = mutableListOf<Any>()
mutableListInt.add(5)
mutableListInt.add(7)
mutableListInt.add(10)
mutableListInt.add(2,15) //add element 15 at index 2
mutableListString.add("A1")
mutableListString.add("As")
mutableListString.add("A3")
mutableListAny.add("S1")
mutableListAny.add(2)
mutableListAny.add(5)
mutableListAny.add("R1")
println(".....print Int type.....")
for(element in mutableListInt){
println(element)
}
println()
println(".....print String type.....")
for(element in mutableListString){
println(element)
}
println()
println(".....print Any type.....")
for(element in mutableListAny){
println(element)
}
}
執行上面示例代碼,得到以下結果 -
.....print Int type.....
5
7
15
10
.....print String type.....
A1
As
A3
.....print Any type.....
S1
2
5
R1
Kotlin MutableList示例4
下面來看看如何使用mutableListOf <T>()
函數來使用MutableList
接口的其他功能。
fun main(args: Array<String>){
var mutableList = mutableListOf<String>()
mutableList.add("A1") // index 0
mutableList.add("V1") // index 1
mutableList.add("P1") // index 2
var mutableList2 = mutableListOf<String>("R1","R12")
var mutableList3 = mutableListOf<String>("D3","U3")
var mutableList4 = mutableListOf<String>("A1","D4","A4")
println(".....mutableList.....")
for(element in mutableList){
println(element)
}
println(".....mutableList[2].....")
println(mutableList[2])
mutableList.add(2,"Rx")
println("......mutableList.add(2,\"Rx\")......")
for(element in mutableList){
println(element)
}
mutableList.add("Ax")
println(".....mutableList.add(\"Ax\")......")
for(element in mutableList){
println(element)
}
mutableList.addAll(1,mutableList3)
println("... mutableList.addAll(1,mutableList3)....")
for(element in mutableList){
println(element)
}
mutableList.addAll(mutableList2)
println("...mutableList.addAll(mutableList2)....")
for(element in mutableList){
println(element)
}
mutableList.remove("V1")
println("...mutableList.remove(\"V1\")....")
for(element in mutableList){
println(element)
}
mutableList.removeAt(2)
println("....mutableList.removeAt(2)....")
for(element in mutableList){
println(element)
}
mutableList.removeAll(mutableList2)
println(".... mutableList.removeAll(mutableList2)....")
for(element in mutableList){
println(element)
}
println("....mutableList.set(2,\"As\")....")
mutableList.set(2,"As")
for(element in mutableList){
println(element)
}
println(".... mutableList.retainAll(mutableList4)....")
if(mutableList.retainAll(mutableList4)){
println("Yes...")
}
for(element in mutableList){
println(element)
}
println(".... mutableList2.clear()....")
mutableList2.clear()
for(element in mutableList2){
println(element)
}
println(".... mutableList2 after mutableList2.clear()....")
println(mutableList2)
println("....mutableList.subList(1,2)....")
println(mutableList.subList(0,1))
}
執行上面示例代碼,得到以下結果 -
.....mutableList.....
A1
V1
P1
.....mutableList[2].....
P1
......mutableList.add(2,"Rx")......
A1
V1
Rx
P1
.....mutableList.add("Ax")......
A1
V1
Rx
P1
Ax
... mutableList.addAll(1,mutableList3)....
A1
D3
U3
V1
Rx
P1
Ax
...mutableList.addAll(mutableList2)....
A1
D3
U3
V1
Rx
P1
Ax
R1
R12
...mutableList.remove("V1")....
A1
D3
U3
Rx
P1
Ax
R1
R12
....mutableList.removeAt(2)....
A1
D3
Rx
P1
Ax
R1
R12
.... mutableList.removeAll(mutableList2)....
A1
D3
Rx
P1
Ax
....mutableList.set(2,"As")....
A1
D3
As
P1
Ax
.... mutableList.retainAll(mutableList4)....
Yes...
A1
.... mutableList2.clear()....
.... mutableList2 after mutableList2.clear()....
[]
....mutableList.subList(1,2)....
[A1]