Kotlin编程

kotlin数组

2019-06-22  本文已影响1人  凌烟醉卧

1)创建数组的两种方式

    //使用arrayOf()创建数组   系统可以推断出类型
    var result  = arrayOf("Java","Python","C++")  
     
    //创建一个元素为null的数组   需要使用泛型类指定数组类型
    var result2 = arrayOfNulls<Int>(3)
    
    //创建长度为0的空数组    需要使用泛型类指定数组类型
    var result3 = emptyArray<String>()
    //创建指定长度,使用Lambda表达式初始化数组元素的数组   可以动态的计算数组元素的值
    var arr4 = Array (5,{(it * 2 + 1)})
    for(item in arr4){
        print(item)// 1 3 5  7 9
    }
    
    
    //如果将基本类型传入Array<T>中,Kotlin会将这些基本类型自动装箱,所以提供了了 ByteArray ShortArray等等
    //静态初始化
    var doubleArr = doubleArrayOf(1.0,2.0,6.43,3.5,4.65)
    //动态操作
    var intArr2 = IntArray(5, {it * it})

2)数组的使用

   var result = arrayOf(1,2,3,4)
   for (index in result.indices){//indices  具有更好的性能
       print(result[index])//1,2,3,4
   }
   var result = arrayOf(1,2,3,4)
   for ((index,value) in result.withIndex()){
       print("index为${index}的值为${value}\n")
   }

3)数组的常用方法

var result = arrayOf(1,2,3,4)
   
   
   //使用 Lambda 表达式要求所有数组元素都满足该表达式,如果都满足,那么该方法返回 true
   print(result.all({it>2}))  //false
   
   //使用 Lambda 表达式要求其中只要有一个数组元素该表达式,如果满足,那么该方法返回 true
    print(result.any({it>3}))  //true
    
    //将数组转为集合
    print(result.asList()) //[1, 2, 3, 4]
    
    //根据数组元素来计算<K,V>对,返回所有<K,V>对组成的 Map集合
    print(result.associate({it + 10 to it* it}))//{11=1, 12=4, 13=9, 14=16}
    
    var map= mutableMapOf(5 to 100 , 2 to 120 , -1 to 130)
    print(map)//{1=100, 2=120, -1=130}
    //将数组转为map对象,并且添加到其它的map中
    print(result.associateByTo(map, {it* it})) //{1=1, 2=120, -1=130, 4=2, 9=3, 16=4}
    
    //计算数组所有元素的总和
    println(result.fold(0, {ace , e ->ace+ e})) //10
    
    //两个数组,如果长度和顺序都相等,返回true
    print(result.contentEquals(result))//true
    
    //复制数组
    var result2 = result.copyOf(6)
    print(result2.asList())//[1, 2, 3, 4, null, null]
    
    //将数组转为字符串
    print(result2.contentToString())//[1, 2, 3, 4, null, null]
    
    //将result2数组从第5(indexWie4)个到第7(index为6)个元素赋值为1
    result2.fill(1,4,6)//1是赋给的值   4和6是下标(包含4,不包含6)
    print(result2.contentToString())
    
    //对数组进行排序
    result.sort()
上一篇 下一篇

猜你喜欢

热点阅读