简介 ArrayList 可以理解为是一个长度可变的集合,在日常开发中使用也比较频繁,这里不写与java中的ArrayList的区别,只单纯的介绍Kotlin中的ArrayList。这里的方法不包括从接口继承来的方法,AbstractMutableList<E>和RandomAccess的方法会单独介绍。其中比较好玩的方法,一般都来自AbstractMutableList接口 出身 open class ArrayList<E> : AbstractMutableList<E>...
varstrStringfuninit(){str="wusy"varlist=ArrayList<String>()list.add(str)} 这个时候,编译会无法通过,系统会给你改成list.add(str!!)以通过编译。会出现这样的原因是Kotlin有着自己的判空机制。"str!!"表示str一定不为空。但是我们的在定义str的时候可以看到var str:String?=null,str是可以为null的,如果...
使用1:3者等效使用 var list0 = ArrayList<String>().apply { add("A") add("B") add("C") } var list1 = ArrayList<String>() list1.also { it.add("A") it.add("B") it.add("C") } var list2 = ArrayList<String>() list2.let { it.add("A") it.add("B") it.add("C")...
val list1 = ArrayList<Int?>() list1.add(null) val list2 = ArrayList<Int>() //不允许 //list2.add(null) 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 上面展示了在kotlin中是支持泛型的类型参数的可空性的。 同时,还要注意区分“ArrayList<Int?>”和ArrayList?的区别。前面一种表示集合本身是非空...
val defferredList = ArrayList<Deferred<*>>(); repeat(20) { val de = GlobalScope.async(Dispatchers.IO) { repeat(1000) { increase() } } defferredList.add(de) } for (de in defferredList) { de.await() } println("testCoroCount result:$count") ...
Kotlin号称全面兼容Java,于是乎Java的容器类仍可在Kotlin中正常使用,包括大家熟悉的队列ArrayList、映射HashMap等等。不过Kotlin作为一门全新的语言,肯定还是要有自己的容器类,不然哪天Java跟Kotlin划清界限,那麻烦就大了。与Java类似,Kotlin也拥有三类基本的容器,分别是集合Set、队列List、映射Map,然后每类容器又分作只...
add(element) return destination } 3、源码解析 首先,filterIsInstance是一个扩展函数,它的主要实现是借助于filterIsInstanceTo,通过外部传入的R泛型,创建一个R泛型的ArrayList可变集合,用于收集原集合中instance R类型的元素.可以看出在filterIsInstanceTo内部是遍历集合然后利用is判断属于R类型的元素就加入到集合中,最后...
arrayListOf.add("3") arrayListOf.add("4") for (sinarrayListOf) {println(s)} } 当前阶段,这两个方法返回的都是ArrayList,但是Kotlin官方计划将之后的mutableList与ArrayList区分开来。所以在Kotlin中咱们尽量使用mutableListOf()方法来创建list吧! 再来创建一个不可变的集合,使用方法 ...
我们将在接下来的章节中讨论处理可空类型的方法。现在让我们回到类型定义。在定义泛型类型时,有多种定义可空性的可能性,因此让我们通过比较包含类型为Int的泛型ArrayList的不同声明来检查各种集合类型。下面是一个表格,展示了关键的区别: 理解不同的空类型声明方式很重要,因为 Kotlin 编译器强制执行它以避免NullPointer...
public static void main(String[] args) {List<Person> personArrayList = new ArrayList<>();personArrayList.add(new Person("aaa",11));personArrayList.add(new Worker1("bbb",12));personArrayList.add(new Worker2("ccc",13));List<Worker1> personArrayList1 = new ArrayList<>();personArrayList1...