一、Kotlin、Java中的数组对比

数组分类 Kotlin Java
整型 IntArray int[]
整型装箱 Array<Int> Integer[]
字符 CharArray char[]
字符装箱 Array<Char> Character[]
字符串 Array String[]
浮点型 FloatArray float[]
浮点型装箱 Array<Float> Float[]
双精度 DoubleArray double[]
双精度装箱 Array<Double> Double[]

二、数组的创建

  • Java

    int[] c = new int[]{1,2,3,4,5};
    
  • Kotlin

    val k0 = intArrayOf(1,2,3,4,5) // 变长参数
    val k1 = IntArray(5){ it + 1 }// kotlin中新建一个对象不需要new关键字,参数一:数 组长度;参数二:lamda表达式,it的值为数组下标。
    
    println(k0.contentToString())
    println(k1.contentToString())
    

三、数组的长度

  • Java

    int[] array = new int[5];
    System.out.println(array.length);
    
  • Kotlin

    val array = IntArray(5)
    println(array.size)
    

四、数组的读写

  • Java

    String[] str = new String[]{"Hello","World"};
    str[1] = "Java";
    System.out.println(str[0] + ", " + str[1]);
    
  • Kotlin

    val str = arrayOf("Hello","World")
    str[1] = "Kotlin"
    println("${str[0]}, ${str[1]}")// 使用字符串模板打印
    

五、数组的遍历

  • Java
    float[] floats = new float[]{1,3,5,7};
    for(float element : floats){
        System.out.println(element);
    }
    
    for(int i=0;i<floats.length;i++){
        System.out.println(floats[i]);
    }
    
  • Kotlin
    val floatArray = floatArrayOf(1f,3f,5f,7f)
    for(element in floatArray){
        println(element)
    }
    
    // 或者使用以下方式遍历
    floatArray.foreach{ element ->
      println(element)
    }
    
    // 或者下面的方式(对标java中的 for(int i=0;i<floats.length;i++)遍历方式)
    for(i in floats.indices){
        println(floats[i])
    }
    

六、判断数组中是否包含某个元素(数组的包含关系)

  • Java
    int[] intArray = new int[]{1,2,3,4,5};
    for(int i : intArray){
        if(i == 4){
            System.out.println("4 exists in variable 'intArray'");
        }
    }
    
  • Kotlin
    val intArray = IntArray(5){ it +1 }
    if(4 in intArray){
        println("4 exists in variable 'intArray'")
    }