首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java中的Arrays.asList(T. a)相关有关问题

2012-10-26 
Java中的Arrays.asList(T... a)相关问题????? 在《Thinking in Java》中提到使用Arrays.asList(T... a)这个

Java中的Arrays.asList(T... a)相关问题

????? 在《Thinking in Java》中提到使用Arrays.asList(T... a)这个方法生成的List是不能修改其长度的,书中解释说“其底层表示是数组,因此不能调整尺寸”。我觉得这个解释还足以说服我。因为ArrayList的底层也是数组啊,为什么我们可以随便改变它的大小,而通过Arrays.asList(T... a)生成的List就不能改变呢?然后查看ArrayList的源代码,发现ArrayList的长度改变时,其核心就是做一个数组的拷贝操作而已。查看Arrays这个类的源代码:

?? 这个方法做的操作就是返回一个ArrayList呀!

private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable{....}

?

查看了其源代码总算是明白了,ArrayList这个内部类就是以一个固定大小的数组来实现的。

虽然明白了为什么我们不能更改其长度,但是一个新的问题又来了:

???? 为什么不直接使用java.util.ArrayList这个类,而要在内部定义并使用这样一个不可以改变长度的内部的ArrayList呢?

????? 这个问题我暂时没想明白,希望牛人们能给小弟解释一下。

?

1 楼 Jathon_hs 2011-01-23   我想可能是翻译的问题,原文中就有fixed-size array一词

热点排行