Skip to content
Go back

Java 的表 List

Edit page

Java 的表 List

picture 1

List<?> 转换成 ?[]

int[] array = list.stream().mapToInt(i -> i).toArray();

注意 list.toArray() 返回的是 Object[] 或者 T[]

从 List 复制效率看浅拷贝与深拷贝

复制 List 的几种方法:

上面这几种都属于是浅拷贝,原列表的对象发生变化,复制对象的元素也会发生改变;

这几种方法属于深拷贝方法;

效率对比:

  1. System.arraycopy() ,这是一个 native 方法,一般是效率更高的语言编写的,并且看 javadoc 可知,这个方法不用经过 JNI 的编译,而是直接用 cpp 写好的;
  2. clone(),虽然该方法也是 native 方法,但是需要通过 JNI 编译才能执行,因此速度差一点;
  3. Arrays.copyOf(),不是 native 方法,且依赖于 System.arraycopy() ,所以要更慢;
  4. for(),是深拷贝了,比浅拷贝要慢得多;

Edit page
Share this post on:

Previous Post
Java 的栈
Next Post
排序算法