当前位置: 首页 > 后端技术 > Java

Kotlin系列

时间:2023-04-01 21:37:44 Java

Kotlin集合添加“不可变”集合框架接口,无需重新造轮子,复用JavaAPI的所有实现类型,提供丰富的方法,如forEach/map/flatMap等高阶函数运算符级别的支持,简化对集合框架的访问1.KotlinVSJava集合类型KotlinJava不可变ListListList变量ListMutableListList不可变MapMapMap变量MapMutableMapMap不可变的SetSetSet可变的SetMutableSetSet1。创建一个List集合javaListlist=newArrayList<>();Listlist=newArrayList(Arrays.asList(1,2,3));kotlinvalstringList=listOf("Hello","World")valmutableStringList=mutableListOf("Hello","World")varstringList=ArrayList()//去掉new其他的和Java类似,但是这个ArrayList是kotlin.collections.ArrayList//通过typealiasArrayList=java.util.ArrayList2.列表集合读写javaListlist=newArrayList<>();list.add("你好");list.add("Java");列表.get(0);Kotlin可以直接使用类似数组下标的方法[]读写list,当stringList[1]表达式在左边时,表示赋值在右边,表示取值valstringList=ArrayList()stringList.add("Hello")stringList[1]="World"//等于=号左边的stirngList.add("Wrold")valhellostring=stringList.get(0)valworldstring=stringList[1]//等于stirngList=号右边的.get(1)3.Map集合创建javaMapmap=newHashMap<>();map.put("你好","世界");kotlin用于创建Pair类型valstringmap=mapOf("Hello"to"World","age"to20)//"Hello"to"World"立即是K-VvalstringList3=mutableListOf("1","2","3")for(iinstringList3.indices){stringList3.add("num:$i")}for(iinstringList3.indices){stringList3+=("num:$i")}-=等价于删除for(iinstringList3forList.indices){stringList3-=("num:$i")}println(stringList3.joinToString())4.1.2mapwritestringmap["Hello"]="World"stringmap.plus("Hello"to"World")4.2读取集合4.2.1读取Listvalhellostring=stringList.get(0)valworldstring=stringList[1]//等于stirngList.get(1)4.2.2map读取也可以用在=的右边sign[]Methodvalkey=stringmap["Hello"]valgetkey=stringmap.get("Hello")5.是否注意集合别名?kotlin中用来创建集合的ArrayList和Java中的非常相似,但实际上是不同的,通过别名javaListlist=newArrayList<>();KotlinvarstringList=ArrayList()//省略new其他和Java类似,但是这个ArrayList是kotlin.collections.ArrayList//viatypealiasArrayList=java.util.ArrayList@SinceKotlin("1.1")publictypealiasArrayList=java.util.ArrayList@SinceKotlin("1.1")publictypealiasLinkedHashMap=java.util.LinkedHashMap@SinceKotlin("1.1")publictypealiasHashMap=java.util.HashMap@SinceKotlin("1.1")publictypealiasLinkedHashSet=java.util.LinkedHashSet@SinceKotlin("1.1")publictypealiasHashSet=java.util.HashSet6。Pair&Triple6.1Pair(actuallyK-V)valpair="Hello"to"World"//创建方式valpair2=Pair("Hello","World")//构造函数创建valvalue1=pair.first//first取第一个,也就是keyvalvalue2=pair.second//second取第二个valueval(x,y)=pair//解构6.2Triplevaltriple=Triple("Hello",20,0.1)valfirst=triple.firstvalsecond=triple.secondvalthird=triple.thirdval(x,y,z)=triple欢迎大家访问我的个人博客JohnnyHut欢迎关注我公众号