list的一个典型的特性就是其长度是可变的,我们可以很方便地对它进行插入和删除元素的操作,这是它与数组所存在的一个很大的区别,后者的长度是固定的,而且我们不能从数组中删除元素,只能修改元素的值。
利用arrays.aslist(array)返回一个list,然而这个返回的是只读的list不支持add和remove的操作。
jdk文档是这么说的:
public static <t> list<t> aslist(t... a) 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同 collection.toarray() 一起,充当了基于数组的 api 与基于 collection 的 api 之间的桥梁。返回的列表是可序列化的,并且实现了 randomaccess。此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素: list<string> stooges = arrays.aslist("larry", "moe", "curly");
可以看出这是对数组的一个简单包装,提供了一个可按照list方式访问的外壳而已,其本质还是数组。在.net中,array和list都实现ilist接口,当我们通过ilist接口来访问一个数组时其实就与访问arrays.aslist(array)所返回的list是一样的。
至于jdk里说可以用来创建固定大小的list,我暂时还不知道在哪种情况下适用。