kotlin 数组 可变/不可变list使用

一,数组在 java和kotlin里的区别  

java里:String[] arrayStr = xxxxxxxxx 

kotlin里:listOf(xxx,yyy,zzz)

在kotlin里没有了String[] 这样的类型  取代的是listOf生成的一个immutabliList  不可变list,这个immutablist不可以add remove 和java中的数组一样的使用。

二:mutablist(可变list)的使用 和 java中的list一样使用,可以add remove  addAll等。

Unlike many languages, Kotlin distinguishes between mutable and immutable collections (lists, sets, maps, etc). Precise control over exactly when collections can be edited is useful for eliminating bugs, and for designing good APIs.

https://kotlinlang.org/docs/reference/collections.html

You'll need to use a MutableList list.

classTempClass{

var myList:MutableList=mutableListOf()  // 也可以这样 MutableList = arrayListOf() should also work.

fun doSomething(){

// myList = ArrayList() // initializer is redundant

myList.add(10)

myList.remove(10)

}}

另外kotlin中的list如果只是这几个api功能那也就和java没有任何区别了我们学习kotlin有什么卵用呢?下边列出一些kotlin中list的一些其他api,请参考这篇文章 http://zetcode.com/kotlin/lists/

1,indexOf  

val words = listOf("pen", "cup", "dog", "person","cement", "coal", "spectacles", "cup", "bread")

 val w1 = words.get(0)

 val i1 = words.indexOf("cup")

 println("The first index of cup is $i1")

2,count

val n1 = words.count { it -> it.equs("dog") } 算出有几条狗

3,first  last 找出第一个  最后一个元素  不用多说

4,sortedBy  排序

可以按照泛型对象里的某一个元素的值进行排序 

val cars = listOf(Car("Mazda", 6300), Car("Toyota", 12400),

            Car("Skoda", 5670), Car("Mercedes", 18600))

    val res = cars.sortedBy { car -> car.name }

    res.forEach { e -> println(e) }

5,groupBy 

6,shuffle 随机生成打乱原始顺序

7,replace  replaceAll 替换元素

8,filter map 等类似rx系列的操作符

9,fold  chunk slice 等等 

总之我们在一个业务场景下需要对集合做操作时 先不要自己去实现 看下kotlin中集合的一些方法 可能几行代码就搞定了  如果按照java'的写法估计要10行代码起步了。

你可能感兴趣的:(kotlin 数组 可变/不可变list使用)