本文首發于公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點
list
創建和修改
不可變list,listOf
var list = listOf("a","d","f")
println(list.getOrElse(3){"Unknown"})
println(list.getOrNull(3) ?: "Unknown")
創建和修改可變list,mutableList
val mutableList = mutableListOf("a","d","f")
mutableList.removeIf { it.contains("a") }
遍歷和解構
forIn,forEach,forEachIndexed
用下劃線_來跳過不需要的元素
for (s in list){println(s)
}list.forEach{println(it)
}list.forEachIndexed { index, item ->println("$index, $item")
}
//解構
val(a,_,c) = list
"_"表示跳過這個元素,跳過的元素不會被讀取
轉換
list.toMutableList()
去重
list.distinct()
快速篩選和排序
可以結合filter、forEach、sortedByDescending、sortedBy來快速對一個list進行篩選和排序
val resultList = mutableListOf<AppInfo>()
val recommendations = listOf(AppA(), AppB(), AppC())
//根據app的安裝時間按照倒序排列
recommendations.filter { //filter里跟篩選的條件,符合條件的數據會繼續走后面的排序it.isAppInstalled()
}
.sortedByDescending { //這里是排序的條件,sortedBy是正序it.getAppInstalledTime()
}.forEach { resultList.add(it) }
set
不可重復的,去重里面的元素,函數操作基本同list
map
fun main() {val map = mapOf("Jack" to 20, "Jim" to 18)mapOf(Pair("Jim",20), Pair("json",30))println(map["Jack"])println(map.getValue("Jack"))println(map.getOrElse("java"){"unknown"})println(map.getOrDefault("java", 0))map.forEach{println("${it.key}, ${it.value}")}val mutableMap = mutableMapOf("Jack" to 20, "Jim" to 18)//添加元素mutableMap += "jim" to 30mutableMap["jim"] = 31mutableMap.getOrPut("role"){19}println(mutableMap)
}
to,實際上是一個函數,返回一個Pair結果
去重
val clone = filteredDirectories.clone() as ArrayList<Directory>
//數據去重。
callback(clone.distinctBy { it.path.getDistinctPath() } as ArrayList<Directory>)
歡迎關注我的公眾號查看更多精彩文章!