ArrayList<String>() vs arrayListOf<String>()

不打扰是莪最后的温柔 提交于 2019-12-31 03:48:27

问题


I was going through some Kotlin basics and found two syntaxes.

ArrayList<String>()

And

arrayListOf<String>()

What is the difference between these two as both are part of Kotlin.Collections?


回答1:


arrayListOf<T>() is mainly there for your convenience. vararg-functions usually come with a (sometimes negligible) performance impact and switching between the arrayListOf(someElements...) and arrayListOf() without that convenience method would basically delegate that problem to you as a programmer. You have to know it and you would have to change that code to ArrayList(), if such an impact is affecting you and if that convenience function wouldn't exist.

arrayListOf() is basically just that. It returns ArrayList() and it is inlined. That's just convenient, so that you don't really have to think about it, when you switch back and forth between arrayListOf(someElements) and arrayListOf().

That having said: there is no difference between arrayListOf() and ArrayList() as also others have already mentioned and arrayListOf(elements) is the convenience variant to construct an ArrayList with the given elements.




回答2:


arrayListOf is a function, that has optional variable length arguments

In case of using it without arguments, there is no difference




回答3:


arrayListOf<T>()

is just an extension function that looks like this:

public inline fun <T> arrayListOf(): ArrayList<T> = ArrayList()



回答4:


it a function is right but is use of like this

here in function used set() function of arrayListOf() is used to set the given element at specified index and replace if any element already present at that index

fun main(args: Array<String>){

   val list: ArrayList<String> = arrayListOf<String>()

   list.add("Ajay")
   list.add("Vijay")
   list.add("Prakash")

  println(".......print list.......")
  for (i in list) {
      println(i)
  }
  println(".......arrayList.set(2,\"Rohan\").......")
  list.set(2,"Rohan")
  println(".......print ArrayList.......")
  for (i in list) {
      println(i)
  }
}

Output

.......print list.......
Ajay
Vijay
Prakash
.......list.set(2,"Rohan").......
.......print list.......
Ajay
Vijay
Rohan


来源:https://stackoverflow.com/questions/56166712/arrayliststring-vs-arraylistofstring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!