Uso de tipos de colección en Kotlin - Notas

El surgimiento del desarrollo de Android de próxima generación de Kotlin (versión completa con marcadores) dirección de descarga
1. Matriz de matriz ordenada y repetible

  1. Las matrices comienzan en ( índice ) 0 y así sucesivamente hasta N. Los tipos de colección más utilizados
  2. La característica de Array es que su tamaño es fijo e inmutable, y el tipo de sus elementos es inmutable.
   val nollstations = arrayOf(
        "嘉定北", "徐家汇", "商翔", "桃浦新村", "徐家汇",
        "上海四站", "罗山路", "池士尼", "嘉定新城", "徐家汇", "挑浦新村"
    )
    println(nollstations.first()) //获取数组的第一参数
    println(nollstations.component1()) //获取数组第一个参数
    println(nollstations.component2())//获取数组第二个参数
    println(nollstations.component3())//获取数组第三个参数
    println(nollstations.component4())//获取数组第四个参数
    println(nollstations.component5())//获取数组第五个参数
    println(nollstations.last())//获取数组最后一个参数
    println(nollstations.contains("池士尼"))//数组当中是否包含“池士尼”这个元素
    println(nollstations.find { it.contains("徐") })//查找模式元素当中是否存在“徐”
    println(nollstations.findLast { it.contains("嘉") })//查找模式数组最后元素当中是否存在“嘉”
    println(nollstations.joinToString())  //将整个数组输出一个元素逗号分割形式的字符串,打印出来
    println(nollstations.reversed().joinToString())//将整个数组输出一个元素逗号分割形式的字符串,反序打印出来
    println(nollstations.joinToString { it + "站" })//将整个数组输出一个元素逗号分割形式的字符串,每个元素末尾添加站组合打印出来
    println(nollstations.sortedBy { s -> s.length }) //将整个数组根据元素的长度,从低到高的排序依次,以数组的形式打印出来
    println(nollstations.sortedByDescending { s -> s.length })//将整个数组根据元素的长度,从高到低的排序依次,以数组的形式打印出来
    println(nollstations.maxBy { s -> s.length })//查找数组中元素最长的元素,将其打印出来
    println(nollstations.distinct())//去除数组当中一些重复的元素
    println(nollstations.distinctBy { s -> s.length })//只返回长度不同的一些元素
    println(nollstations.reduce { s1, s2 -> "$s1,$s2" })//将元素以1+2的形式进行组合,从下标0开始
    println(nollstations.reduceRight { s1, s2 -> "$s2,$s1" })//与其上面相反
    println(nollstations.fold("地铁1 1号线站点") { sl, s2 -> "$sl-$s2" })//在数组的起始位置添加 改字符串
    println(nollstations.foldRight("是地铁1 1号线的站点.") { sl, s2 -> "$sl-$s2" })//在数组的末尾位置添加 改字符串
     println(nollstations.sliceArray(2..5).joinToString())//从下标为2至5的位置进行元素打印
    println(nollstations.take(2))//只打印前两位元素
    println(nollstations.takeLast(3))//从最后面开始算,打印最后三位元素
    println(nollstations.drop(3))//去掉前三位元素,打印其余元素
    println(nollstations.dropLast(3))//去掉最后三位元素,打印其余元素

resultado:

Jiading North
Jiading North
Xujiahui
Shangxiang
Taopu New Village
Xujiahui
Taopu New VillagetrueXujiahui Jiading New Town Jiading North, Xujiahui, Shangxiang , Taopu New Village, Xujiahui,
Shanghai Four Stations, Luoshan Road, Chi Shini, Jiading New Town, Xujiahui, Taopu New Village, Taopu New Village , Xujiahui, Jiading New City, Chishini, Luoshan Road, Shanghai Fourth Station, Xujiahui, Taopu New Village, Shangxiang, Xujiahui, Jiading North Jiading North Station, Xujiahui Station, Shangxiang Station, Taopu New Village Station, Xujiahui Station, Shanghai Fourth Estación , Estación Luoshan Road, Estación Chishini, Estación Jiading Xincheng, Estación Xujiahui, Estación Taopu Xincun [Shangxiang, Jiading North, Xujiahui, Xujiahui, Luoshan Road, Chishini, Xujiahui, Taopu New Village, Shanghai Fourth Station, Jiading New Town, Taopu New Pueblo] [Pueblo nuevo de Taopu, Cuarta estación de tren de Shanghái, Ciudad nueva de Jiading, Pueblo nuevo de Taopu, Norte de Jiading, Xujiahui, Xujiahui, Calle Luoshan, Chi Shini, Xujiahui, Shangxiang] Pueblo Nuevo de Taopu [Norte de Jiading, Xujiahui, Shangxiang, Nuevo de Taopu Village , Cuarta estación de Shanghái, Luoshan Road, Chishini, Jiading New Town] [Jiading North, Shangxiang, Taopu New Village] Jiading North, Xujiahui, Shangxiang, Taopu New Village, Xujiahui, Shanghai Cuarta estación, Luoshan Road, Chishini, Jiading New Town ,Xujiahui,Taopu New Village Taopu New Village,Xujiahui,Jiading New Town,Chishini,Luoshan Road,Shanghai Fourth Station,Xujiahui,Taopu New Village,Shangxiang,Xujiahui,Jiading North Metro Line 1 Station-Jiading North-Xujiahui-Shangxiang -Taopu Aldea nueva-Xujiahui-Cuarta estación de Shanghai-Luoshan Road-Chishini-Ciudad nueva de Jiading-Xujiahui-Aldea nueva de Taopu













Jiading North-Xujiahui-Shangxiang-Taopu New Village-Xujiahui-Shanghai Fourth Station-Luoshan Road-Chishini-Jiading New Town-Xujiahui-Taopu New Village-es la estación de la línea 11 del metro.
Shangxiang, Taopu New Village, Xujiahui, Cuarta estación de Shanghai
[Jiading North, Xujiahui]
[Jiading New City, Xujiahui, Taopu New Village]
[Taopu New Village, Xujiahui, Shanghai Cuarta estación, Luoshan Road, Chisni, Jiading New Town, Xujiahui, Taopu New Village ]
[Jiading North, Xujiahui, Shangxiang, Taopu New Village, Xujiahui, Shanghai Four Stations, Luoshan Road, Chishini] [ Jiading North map, Xujiahui map, Shangxiang map,
Taopu New Village map, Xujiahui map, Shanghai Four Stations map , Luoshan Road map, Chishini map, Jiading New City map, Xujiahui map, Taopu New Village map]
[Taopu New Village, Taopu New Village]

    val numbers = arrayOf(O, -999, 100, 33, -2, 3000)
    val numbers2 = arrayOf(O, -999, 100, 33, -2, 3000)
    println(numbers.sortedArray().joinToString())//按数字大小进行排列
    println(numbers.sortedArrayDescending().joinToString())//按数字大小进行倒序排列
    println(numbers.map { "数字$it" })//针对数组元素进行转换
    println(numbers.filter { it % 2 == 0 })//针对数组每个元素进行判断
    println(numbers.max())//获取最大值
    println(numbers.min())//获取最小值
    println(numbers.all { it > 0 }) //判断数组里的元素是否全部都大于零,返回 true 或 false
    println(numbers.any { it < 0 }) //与 all相对,只要数组当中有某个元素小于零,返回true或false
    println(numbers.none { it == 0 }) // 但数组所有的元素都不满足条件,返回true 否则 false
    println(numbers.sum()) //计算求和
    println(numbers.sumBy { 10_000 + it }) //增强求和
    println(numbers.average()) //求平均值
    println(numbers.plus(numbers2).joinToString())//将numbers2 数组 追加到 numbers 后面
    println((numbers2 + numbers).joinToString()) //合并两个数组

resultado

-999, -2, 26, 33, 100, 3000 3000, 100, 33, 26,
-2, -999
[número 26, número-999, número 100, número 33, número-2, número 3000]
[26, 100, -2, 3000]
3000
-999
falso
verdadero
verdadero
2158
62158
359.6666666666667
0, -999, 100, 33, -2, 3000, 0, -999, 100, 33, -2, 3000
0, -999, 100 , 33, -2, 3000, 0, -999, 100, 33, -2, 3000

2. La lista mutable MutableList puede agregar , eliminar, modificar y verificar
la lista a voluntad , y la lista no tiene límite de tamaño.

 val nollstations = mutableListOf(
        "嘉定北", "徐家汇", "商翔", "桃浦新村", "徐家汇",
        "上海四站", "罗山路", "池士尼", "嘉定新城", "徐家汇", "桃浦新村"
    )

    val newStations = mutableListOf("花桥")
    nollstations.add("嘉定新城") //末尾增加元素
    nollstations.addAll(newStations)//添加序列
    println("nollstations = $nollstations")
    nollstations.remove("嘉定新城")//从第一个元素进行匹配,如果相同进行删除
    println("nollstations = $nollstations")
    nollstations.removeAt(0)//根据列表的index下标,然后进行删除
    println("nollstations = $nollstations")
    nollstations.set(0, "替换徐家汇")//根据列表index下标,进行替换
    nollstations[0] = "替换徐家汇"//根据列表index下标,进行替换
    println("nollstations = $nollstations")
    val subList = nollstations.subList(3, 6)//从下标为4至7的位置进行打印
    println(subList)
    println(subList.map { "ceshi$it" }) //针对列表集合,每个元素进行转换
    println(subList.maxBy { s-> s.length}) //针对列表集合,打印元素最长的那个元素
//    println(nollstations.removeAll(nollstations))//清除所有列表集合元素
    println(nollstations.clear())//清除所有列表集合元素

resultado:

nollstations = [Jiading North, Xujiahui, Shangxiang, Taopu New Village, Xujiahui, Shanghai Fourth Station, Luoshan Road, Chishini, Jiading New Town, Xujiahui, Taopu New Village, Jiading New Town, Huaqiao] nollstations = [Jiading North, Xujiahui,
Shang Xiang, Taopu New Village, Xujiahui, Shanghai Four Stations, Luoshan Road, Chishini, Xujiahui, Taopu New Village, Jiading New City, Huaqiao] nollstations = [Xujiahui, Shangxiang, Taopu New Village, Xujiahui, Shanghai Four Stations, Luoshan Road,
Pond Disney, Xujiahui, Taopu New Village, Jiading New Town, Huaqiao]
nollstations = [Reemplazar Xujiahui, Shangxiang, Taopu New Village, Xujiahui, Shanghai Fourth Station, Luoshan Road, Chi Shini, Xujiahui, Taopu New Village, Jiading New Town, Huaqiao]
[Xujiahui, cuarta estación de Shanghái, calle Luoshan]
[ceshi Xujiahui, cuarta estación de ceshi Shanghái, calle ceshi Luoshan]
Cuarta estación de Shanghái
kotlin.Unit

3. El conjunto de listas setOf()
se caracteriza por un tamaño fijo y el tipo de elemento también es inmutable

 	val mainLine = setOf("迪士尼", "徐家汇", "桃蒲新村", "南翔", "马陆", "嘉定新城")
    val sublineJd = setOf("嘉定新城", "嘉定西", "嘉定北")
    val sublineKs = setOf("嘉定新城", "上海赛车场", "安亭", "花桥")
    //集合数据大小
    println(mainLine.size)
    //集合数据大小
    println(mainLine.count())
    //匹配集合里面是否有参数 返回 true或者false
    println(mainLine.contains("迪士尼"))
    //打印集合元素
    println(mainLine.toTypedArray().joinToString())
    //打印集合元素
    println(mainLine.joinToString())

resultado:

6
6
trueDisney
, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading New Town
Disney, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading New Town

//匹配mainLine集合是否完全包含sublineJd集合 返回 true或false
    println(mainLine.containsAll(sublineJd))
    println((mainLine + sublineJd).containsAll(sublineJd))
    println((mainLine + sublineJd).containsAll(mainLine))
    //查询两个集合中交集的部分
    println(mainLine.intersect(sublineJd))
    println(mainLine.intersect(sublineKs))
    println(sublineJd.intersect(sublineKs))

resultado:

falso verdadero verdadero
[ Ciudad nueva de Jiading] [Ciudad nueva de Jiading] [Ciudad nueva de Jiading]



     //排除一个集合与另一个集合交集部分
    println(mainLine.subtract(sublineJd))
    println(mainLine.subtract(sublineKs))
    println(sublineJd.subtract(sublineKs))
	//合并两个集合
    println(mainLine.union(sublineJd).union(sublineKs))

    //算出主线分别于两条支线的补集
    println(mainLine.union(sublineJd) - mainLine.intersect(sublineJd))
    println(mainLine.union(sublineKs) - mainLine.intersect(sublineKs))

resultado:

[Disney, Xujiahui, Taopu New Village, Nanxiang, Malu]
[Disney, Xujiahui, Taopu New Village, Nanxiang, Malu] [
Jiading West, Jiading North]
[Disney, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading Xincheng, Jiading Oeste, norte de Jiading, circuito de Shanghái, Anting, Huaqiao]
[Disney, Xujiahui, pueblo nuevo de Taopu, Nanxiang, Malu, oeste de Jiading, norte de Jiading] [
Disney, Xujiahui, pueblo nuevo de Taopu, Nanxiang, Malu, circuito de Shanghái, Anting, Huaqiao ]

4. MutableSet
es similar a MutableList, caracterizado por tamaño variable y tipo inmutable.

	val mainLine = setOf("迪士尼", "徐家汇", "桃蒲新村", "南翔", "马陆", "嘉定新城")
    val sublineJd = setOf("嘉定新城", "嘉定西", "嘉定北")
    val sublineKs = setOf("嘉定新城", "上海赛车场", "安亭", "花桥")
    val newsLines = setOf("麒麟路", "墨水湖北路")
    
    //将setOf转变为MutableSet
    val mnutableMainline = mainLine.union(sublineJd).union(sublineKs).toMutableSet()

    //末尾添加一个元素
    mnutableMainline.add("归山北麓")
    println(mnutableMainline)
    //添加一个setOf集合
    mnutableMainline.addAll(newsLines)
    println(mnutableMainline)
    //在集合里面查找是否相同的元素进行删除
    mnutableMainline.remove("归山北麓")
    println(mnutableMainline)
    //针对每个元素的长度,是否符合大于2的条件,进行打印
    println(mnutableMainline.filter { it.length > 2 }.joinToString())
    //针对每个元素进行二次 更改
    println(mnutableMainline.joinToString { "$it map" })
    //跳过前两位元素
    println(mnutableMainline.drop(2).joinToString())
    //只打印前2位元素
    println(mnutableMainline.take(2).joinToString())

[Disney, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading New City, Jiading West, Jiading North, Circuito de Shanghai, Anting, Huaqiao, Guishan North] [Disney, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading New Town
, Jiading Oeste, Jiading Norte, Circuito de Shanghai, Anting, Huaqiao, Guishan Norte, Qilin Road, Mohu North Road] [Disney, Xujiahui, Taopu New Village, Nanxiang, Malu, Jiading New Town, Jiading Oeste, Jiading Norte, Circuito de Shanghai,
Anting , Huaqiao, Qilin Road, Mohu North Road]
Disney, Xujiahui, Taopu New Village, Jiading New Town, Jiading West, Jiading North, Circuito de Shanghái, Qilin Road, Mohu North Road Disney map, Xujiahui map, Taopu
New Village map, Nanxiang map , Malu map, Jiading New City map, Jiading West map, Jiading North map, Shanghai Circuit map, Anting map, Huaqiao map, Qilin Road map, Mohu North Road mapTaopu New Village, Nanxiang, Malu, Jiading New City, Jiading West,
Jiading Norte, circuito de Shanghái, Anting, Huaqiao, Qilin Road, Mohu North Road Disney,
Xujiahui

Supongo que te gusta

Origin blog.csdn.net/u013290250/article/details/84861212
Recomendado
Clasificación