集合
Java中常用的集合主要是List、Set和Map接口,List的實(shí)現(xiàn)類(lèi)是ArrayList和LinkedList,Set的主要實(shí)現(xiàn)類(lèi)是HashSet,Map的實(shí)現(xiàn)類(lèi)主要是HashMap。Kotlin中也可以用同樣的方式實(shí)現(xiàn)類(lèi),但是也提供了更簡(jiǎn)單的寫(xiě)法
1.List集合的創(chuàng)建:
第一種:復(fù)雜的方式
fun main(){
val list=ArrayList<String>()
list.add("蘋(píng)果")
list.add("香蕉")
list.add("橘子")
for (fruit in list){
println(fruit)
}
}
打印結(jié)果:
蘋(píng)果
香蕉
橘子
第二種:簡(jiǎn)單的方式:
fun main(){
val list= listOf<String>("蘋(píng)果","香蕉","橘子")
for (fruit in list){
println(fruit)
}
}
打印結(jié)果:
蘋(píng)果
香蕉
橘子
對(duì)于可變集合創(chuàng)建是用關(guān)鍵字mutableListOf()
fun main(){
val list= mutableListOf("蘋(píng)果","香蕉","橘子")
list.add("橙子")
for (fruit in list){
println(fruit)
}
}
打印結(jié)果:
蘋(píng)果
香蕉
橘子
橙子
注意:for循環(huán),增強(qiáng)for循環(huán)在java里面是 類(lèi)型 變量:集合,但是kotlin中是 變量 in 集合
2.Set集合的創(chuàng)建:
set集合的創(chuàng)建幾乎和List集合一模一樣,只是將函數(shù)名換成setOf()和mutableSetOf(),Set集合中不可以存放重復(fù)的元素
fun main(){
val set= mutableSetOf("蘋(píng)果","香蕉","橘子")
set.add("橙子")
for (fruit in set){
println(fruit)
}
}
3.Map集合的創(chuàng)建:
第一種方式:
fun main(){
val map=HashMap<String,Int>()
map.put("蘋(píng)果",1)
map.put("香蕉",2)
map.put("橘子",3)
for ((fruit,number) in map){
println("fruit $fruit,num $number")
}
}
打印結(jié)果:
fruit 蘋(píng)果,num 1
fruit 香蕉,num 2
fruit 橘子,num 3
第二種方式:
fun main(){
val map= mapOf("蘋(píng)果" to 1,"香蕉" to 2,"橘子" to 3)
for ((fruit,number) in map){
println("fruit $fruit,num $number")
}
}
打印結(jié)果:
fruit 蘋(píng)果,num 1
fruit 香蕉,num 2
fruit 橘子,num 3
4、集合的函數(shù)表達(dá)式
1).map函數(shù):是一個(gè)功能強(qiáng)大的函數(shù) ,里面有很多函數(shù)

fun main(){
val list= listOf<String>("aaaa","baa","ca")
val newList=list.map { it.toUpperCase() }
for (letter in newList){
println(letter)
}
}
打印結(jié)果:
AAAA
BAA
CA
2)filter函數(shù)

我們敲代碼的時(shí)候 上面出現(xiàn)的提示代碼中 ->符號(hào)的意思是參數(shù)列表結(jié)束,函數(shù)體的開(kāi)始
fun main(){
val list= listOf<String>("aaaa","baa","ca")
val newListLength=list.filter {it.length<4}
println(newListLength)
}
打印結(jié)果:
[baa, ca]
倆個(gè)函數(shù)結(jié)合使用
fun main(){
val list= listOf<String>("aaaa","baa","ca")
// val newListLength=list.filter {it.length<4}
val newList=list.filter { it.length<4 }.map { it.toUpperCase() }
println(newList)
}
打印結(jié)果:
[BAA, CA]
3)any和all函數(shù),any表示集合中是否至少存在一個(gè)元素滿足指定條件,all結(jié)合中是否所有元素滿足條件
fun main(){
val list= listOf<String>("aaaa","baa","ca")
val newanyList=list.any { it.contains("b") }
val newallList=list.all { it.contains("b") }
println("newanyList: $newanyList newallList: $newallList")
}
打印結(jié)果:
newanyList: true newallList: false