Kotlin---集合與遍歷
介紹
同樣在Kotlin中會有List、Map、Set,而與Java中資料結構大多相同,也略有區別。Kotlin中的集合分為可變集合與不可變集合。
List及其遍歷
Kotlin的List<E>
介面只提供了size
、get
、indexOf
等介面。所以我們在寫程式碼之前需要先知道這個List使用的時候會變還是不會變。
建立可變與不可變的List
在Kotlin中都是通過標準庫來建立集合類,例如:
- 建立可變List:通過
mutableListOf()
,返回MutableList
物件 - 建立不可變List:通過
listOf()
,返回List
介面
class TestKotlin {
fun function() {
// 建立MutableList可以繼續新增修改元素
var mutableList: MutableList<Int> = mutableListOf(1, 2)
mutableList.add(3)
mutableList.remove(4)
// 建立List不能新增和刪除只能遍歷
var immutableList: List<Int> = listOf(1, 2)
}
}
List的遍歷
在Kotlin中的遍歷和Groovy一樣,都可以使用foreach
閉包來完成,也可以使用in
關鍵字來實現
class TestKotlin {
fun function() {
var mutableList: MutableList<Int> = mutableListOf(1, 2, 3, 4)
mutableList.forEach {
println("Mutable List Elements:$it")
}
var mutableList: MutableList<Int> = mutableListOf(1, 2)
for (value in mutableList) {
print("value:$value")
}
}
}
而過濾List中的部分資料也可以通過閉包來實現,通過filter
,我們過濾了小於1的元素。而通過first
,我們會找到第一個等於3的元素。
class TestKotlin {
fun function() {
var mutableList: MutableList<Int> = mutableListOf(1, 2, 3, 4)
var filtedList: List<Int> = mutableList.filter {
it > 1
}
var first = mutableList.first {
it == 3
}
}
}
在Kotlin的閉包中,可以使用很多方式來指定引數,如果沒有指定引數的話,預設會有一個
it
引數來代表閉包的引數。也就是我們也可以使用下面的方式來指定引數的名稱。這也和Groovy一樣。
var filtedList: List<Int> = mutableList.filter { element ->
element > 1
}
而對於排序我們可以通過指定comparator
來完成
class TestKotlin {
fun function() {
var mutableList: MutableList<Int> = mutableListOf(1, 2, 3, 4)
mutableList.sortWith(comparator = Comparator { x, y ->
x - y
})
}
}
Map建立以及遍歷
Map的建立以及訪問、遍歷和List有一些區別。
對於Map的建立可以通過to
關鍵字來完成Key-Value
的配對。而遍歷可以使用forEach
的方式,也可以通過in
關鍵字來完成遍歷
class TestKotlin {
fun function() {
var mutableMap: MutableMap<Int, String> = mutableMapOf(1 to "one", 2 to "two", 3 to "three")
mutableMap.forEach {
print("key:${it.key}...value:${it.value}")
}
for ((key, value) in mutableMap) {
print("Key:$key....Value:$value")
}
}
}
而訪問Map中的Key或者Value則可以類似於Python中字典的形式訪問
class TestKotlin {
fun function() {
var mutableMap: MutableMap<Int, String> = mutableMapOf(1 to "one", 2 to "two", 3 to "three")
print(mutableMap[1])
}
}
Set建立以及遍歷
與List
建立差不多,Set的建立與遍歷、過濾如下
class TestKotlin {
fun function() {
var mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
var immutableSet: Set<Int> = hashSetOf(1, 2, 3)
mutableSet.forEach {
println("$it")
}
}
}
相關文章
- 集合迭代/遍歷
- 如何遍歷HashMap集合?HashMap
- MVC遍歷map集合MVC
- Collection集合的遍歷
- jsp下實現遍歷集合JS
- Java遍歷Map集合的方法Java
- 泛型方法、初始集合和集合的遍歷泛型
- Map集合&&Map集合的不同遍歷【keySet()&&entrySet()】
- Java8集合遍歷Java
- 按指定格式遍歷集合字串字串
- Map集合的四種遍歷方式
- foreach 實現 MyBatis 遍歷集合與批量運算元據MyBatis
- js技巧用Map集合代替Array遍歷JS
- Java之HashMap集合簡介及遍歷JavaHashMap
- 關於Map集合的遍歷總結
- 集合框架(List儲存字串並遍歷)框架字串
- 使用jstl無法遍歷bean中的集合JSBean
- Python字典的遍歷,包括key遍歷/value遍歷/item遍歷/Python
- jsp頁面中同時遍歷多個list集合JS
- 關於集合遍歷並刪除報錯詳解
- 【JavaScript實用技巧(一)】迴圈遍歷與跳出迴圈遍歷JavaScript
- JavaScript 遍歷、列舉與迭代JavaScript
- 第十二天 Python之字典遍歷-集合-函式Python函式
- js的map遍歷和array遍歷JS
- JAVA基礎 練習-13-ArrayList集合學生物件遍歷Java物件
- java8 對list集合中的物件遍歷,重新賦值兩種方法,遍歷某個屬性返回陣列Java物件賦值陣列
- 遍歷 FlowDocument
- Linuxshell遍歷Linux
- jQuery 遍歷jQuery
- JavaScript基礎 —— DOM:遍歷 與 範圍JavaScript
- JavaScript遍歷方法總結與對比JavaScript
- 如何遍歷 HashMap,遍歷HashMap 的 5 種最佳方式HashMap
- jQuery的遍歷結構設計之遍歷同胞jQuery
- jQuery的遍歷結構設計之遍歷祖先jQuery
- ES 筆記三十六:分頁與遍歷筆記
- HashMap 的 7 種遍歷方式與效能分析HashMap
- CArray CList CMap 插入與遍歷效率對比
- java的緩衝流及使用Properties集合存取資料(遍歷,store,load)Java