当我们使用java.util.Arrays.asList()从数组创建列表时,列表是可变的。
是和否:可以通过调用
list.set(index, element);
但该列表可能不会在结构上进行修改。这意味着无法向列表中添加元素或从列表中删除元素。原因很简单,列表仍然由数组支持,数组的大小可能不会改变。
当我们需要一个固定大小的可变集合时,我们会选择 Array
这就是这里的关键点:数组不是集合。该方法主要充当“数组世界”和“集合世界”之间的“桥梁”。Arrays.asList
例如,该方法允许您将数据传递给需要:Arrays.asList
Collection
// A method that expects a collection:
void process(List<String> strings) { ... }
void call()
{
String array[] = new String[] { "A", "B", "C" };
// Pass the array (as a list) to the method:
process(Arrays.asList(array));
}
此应用程序案例包括从数组创建其他集合。例如,如果您有一个数组,并且想要创建一个包含该数组中的元素的数组,则可以Set
String array[] = new String[] { "A", "B", "C" };
Set<String> set = new HashSet<String>();
for (String s : array)
{
set.add(s);
}
但是使用该方法,这可以更方便地完成:Arrays.asList
Set<String> set = new HashSet<String>(Arrays.asList(array));
该方法可以说是Collection#toArray方法的对应物,其工作方向相反(尽管此方法通常涉及创建和填充新数组,而该方法只是“包装”数组并让它“看起来像”一个)。Arrays.asList
Arrays.asList
List