数组
上篇总结复习
上篇链接地址:Kotlin学习第一章(一)
上篇文章学习的知识:
- 基本数据类型:包括了数值类型和字符串类型
- 数值类型:Byte、Int、Long、Float、Double,没有包装类型,还要注意Long类型的标记,必须用大写的 “L”
- 字符串类型:字符串模板的使用,字符串的比较,**原生字符串"""…"""**的使用
数组
还是同样的与java对比的看,这样会更容易记住一点,老规矩,上个表格:
kotlin | java | |
---|---|---|
整型 | IntArray | int [ ] |
整型装箱 | Array< Int > | Integer [ ] |
字符 | CharArray | char [ ] |
字符装箱 | Array< Char > | Character [ ] |
字符串 | Array< String > | String [ ] |
当然同样的Float、Double也是一样的,表格中就没有列出来了。
数组的创建
我们来分别看看java中的数组创建与kotlin的数组创建有什么不同
java
int[] c = new Int[]{1,2,3,4,5};
System.out.println(c.length);
Kotlin
//两种创建方式
//1、值创建
val c0 = intArrayOf(1,2,3,4,5)
//2、表达式创建
val c1 = intArray(5){it+1} // 这里的5表示的是数组的大小,it是数组中对应的index下标
println(c1.contentToString()) //打印一下这个数组看看
println(c1.size)
-
创建的方式还是有些不同的,这里的 “it” 先不用纠结,后面会经常见面的,在这里表示的就是数组中的下标。
-
这里还有一个contentToString()
的函数,这个函数相当于为数组量身定做的,可以很便捷的打印出数组的内容。上面的内容输出的结果为:[1,2,3,4,5] ,感觉kotlin有很多这种函数,极大的提高了效率 -
获取数组的长度,在java中数组使用的是length ,而在kotlin中使用的则是size
数组的读写
java
String[] d = new String[]{"Hello","World"};//创建
d[1] = "Java"; //赋值
System.out.println("d[0]"+",""d[1]");//取值
kotlin
val d = arrayOf("Hello","World")//创建
d[1] = "kotlin"//赋值
println("$d[0],$d[1]")//取值
注意 : Koltin中创建数组,除了拆箱的数组外,其他的数组创建都使用 arrayOf 来创建,包括装箱的数组(例: Array< String >)或者是自定义的数组(例: Array< Person >)
读取值 : = 号左边有"[ ]“为赋值,右边有”[ ]"为取值 (不是一定要有**=** 号才算哦)
数组遍历
先来对比一下吧还是
java
float[] e = new float[]{1,3,5,7,9};
//第一种
for (int i = 0; i < e.length;i++){
System.out.println(e[i]);
}
//第二种
for(float element : e){
System.out.println(element);
}
kotlin
val e = floatArrayOf(1f,3f,5f,7f,9f)
//第一种
for(element in e){
println(element)
}
//第二种
e.forEach {
println(it)
}
通过对比可以看出,kotlin的遍历是通过foreach来遍历的,写起来相对java也是更加的简洁。
判断一个元素是否在数组中
java
float[] e = new float[]{1,3,5,7,9};
//测试1f在数组中
for(float element : e){
if(element == 1f){
System.out.println("1f exists in variable e");
break;
}
}
//测试1.5f不包含在数组中
boolean exists = false;
for(float element : e){
if(element == 1.5f){
exists = true;
break;
}
}
if(!exists){
System.out.println("1.5f not exists in variable e");
}
kotlin
val e = floatArrayOf(1f,3f,5f,7f,9f)
//测试1f在数组中
if(1f in e){
println("1f exists in variable e")
}
//测试1.5f不包含在数组中
if(1.5f !in e){
println("1.5f not exists in variable e")
}
注意:这里有个关键字 “in” 在foreach循环中表示遍历,在条件判断中表示包含关系
对比看完发现kotlin的判断比起java的繁琐,简直不是一个感觉呀。今天的学习就到这里哇。
今日学习总结
- 数组与java中的类型对比
- 数组的创建方式:值创建与 表达式创建( {it+1}的创建方式)
- 数组的访问:数组的读写、遍历、包含关系