美文网首页
8.集合类型(CollectionType)

8.集合类型(CollectionType)

作者: 木子心语 | 来源:发表于2017-09-28 18:22 被阅读0次
    kotlin_集合类型
    集合类型Collection
    1.有序可重复-Array,索引从0开始(index,i)
    2.无序不重复-Set
    3.无序可重复-Map,但值有唯一的键(key)
    
    • Array_数组
    //Array:Array<类型> 或 arrayOf(元素1,元素2,...,元素n)
    //大小固定,元素类型不可变
    var array1 = arrayOf("1","2","3","2")
    
    //创建一个有默认值的数组,Array(计数,{默认值})
    var array2 = Array(10,{"数组2"})
    
    //创建1到10的数组:Array(10,{i->i +1})
    //i代表元素的索引值,从0开始
    var oneToTen = Array(10,{i->i+1})
    println(oneToTen)
    
    //元素计数:count(),空否:isEmpty()
    //获取其中元素,数组名[索引],首元素:数组名.first,尾元素:数组名.last
    println("${oneToTen.component1()},${oneToTen.component2()}")
    
    //切割数组:sliceArray
    val array4 = array1.sliceArray(2..3)
    
    //mutableList:mutableList<类型>或mutableListOf(元素1,元素2,...,元素n)
    var array5 = mutableListOf("1","2","3","4")
    var array6 = arrayOf("1","2")
    //在末尾增加元素:add方法,添加另一个数组addAll方法
    array5.add("5")
    array5.addAll(array6)
    
    //移除元素remove,移除指定位置removeAt
    array5.removeAt(2)
    
    //获取筛选重复元素后的数组:.distinct()或用.toSet()转换为Set
    val array3 = array1.toSet()
    
    for(ll in array5.distinct()){
       println(ll)
    }
    
    • Set
    集合类型Set:无序不重复
    
    //Set<类型> 或setOf(元素1,元素2,...,元素n)
    //大小固定,元素类型不可变
    val set1 = setOf("1","2","3","4","5","6")
    val set2 = setOf("1","2","10")
    val set3 = setOf("4","5")
    
    //元素计数count(),空:isEmpty()
    
    //检查是否包含某个元素,contains,包含另一个Set:containsAll
    println(set1.containsAll(set2))
    
    //转化为数组: toTypeArray()
    
    //集合之间的运算: 
    intersect/subtract/union/minus(补集的被操作对象无须是Set类型)
    
    //转换为可变: toMutableSet
    
    //MutableSet<类型> 或mutableSetOf(元素1,元素2,...,元素n)
      大小可变,类型不可变
    
    val mutableMainline = set1.union(set2).union(set3).toMutableSet()
    
    //在末尾增加元素:add方法,添加另一个集合,addAll方法
    mutableMainline.add("11")
    val newsLines = setOf("12","13")
    mutableMainline.addAll(newsLines)
    println(mutableMainline)
    //移出元素:remove,移出另一个集合:removeAll
    mutableMainline.remove("14")
    mutableMainline.removeAll(newsLines)
    for(s in mutableMainline){
        println(s)
    }
    
    • Map
    无序可重复,类似于"字典"的概念
    主要属性:keys(Set),values
    
    //mapOf<Key,Value>(Pair(key,value),...)
    //显示指定类型,可防止初始化值类型的错误
    val content = mapOf<string,string>(Pair("one","1"),Pair("two","2"),
    Pair("three","3"))
    
    //元素计数:size,空:isEmpty()
    
    //获取某个key对应的value:get,getOrDefault
    println(content.getOrDefault("one","不存在就说明没有问题"))
    
    //返回所有的key:keys,所有的value:values
    
    //转换为可变:toMutableMap
    
    //mutableMapOf<Key,Value>(Pair(key,value),...)
    val content2 = content.toMutableMap()
    
    //添加或更新:下标方法 map变量名[key] = value
    content2["one"] = "11"
    content2["two"] = "22"
    
    //移除元素:remove
    content2.remove("three")
    
    for (mut in content2){
       println("${mut.key},${mut.value}")
    }
    
    swift_集合类型
    CollectionTypes.png
    数组(Arrays)是有序数据的集。
    集合(Sets)是无序无重复数据的集。
    字典(Dictionaries)是无序的键值对的集。
    
    • Array_数组
    //创建一个空数组
    var someInts = [Int]()
    //创建一个带有默认值的数组
    // threeDoubles 是一种 [Double] 数组,等价于 [0.0, 0.0, 0.0]
    var threeDoubles = Array(repeating:0.0,count:3)
    

    相关文章

      网友评论

          本文标题:8.集合类型(CollectionType)

          本文链接:https://www.haomeiwen.com/subject/nlyudxtx.html