String[] somestringarray = { "a","b","c"};也,List<String> A = new ArrayList<String>(Arrays.asList(somestringarray));是Arrays.asList()集合吗?语句正在初始化somestringarray大小的列表?为什么我不能只有somestringarray?声明字符串列表有什么意义,仅使用somestringarray有什么问题? 最佳答案 数组是Java语言的基本组成部分,没有集合框架提供的任何出色功能:无contains,固定大小,不可避免的可变性,等等。Arrays.asList返回一个特殊的List实现,该实现只是传递给它的数组的包装:它支持set,contains,迭代等所有功能,尽管它不支持add或。但是,可以将其传递给期望使用remove的许多实用程序,因为Collection确实会返回Arrays.asList,该值始终为List。该声明List<String> A = new ArrayList<String>(Arrays.asList(somestringarray));首先,将数组包装为Collection,但是一种不支持调整大小的有限实现。 (此外,List反映了您对List所做的更改,对somestringarray返回的List所做的更改实际上也会更改后备数组。)然后,它将其复制到Arrays.asList中,是功能齐全的ArrayList实现,支持调整大小等,并且由于它可以复制,因此现在与原始数组无关。
08-08 06:16