我无法理解如何在Java中初始化ArrayLists数组,有人可以解释这行代码中发生了什么吗?
edges = (ArrayList<Integer>[]) new ArrayList[nodeCount + 1];
Run Code Online (Sandbox Code Playgroud)
让我们逐个地打破它.
edges是一个类型的变量ArrayList<Integer>[]
=是assign运算符,它将右手分配给左手
(ArrayList<Integer>[])是变量的类型转换.
new ArrayList[nodeCount + 1]意味着我们为ArrayList具有nodeCount+1未知元素的数组分配空间.
这是初始化数组的一种非常糟糕的方法.它的作用是创建一个数组并使元素成为整数.
替代:
edges = new ArrayList<Integer>(nodeCount+1);
说明:本ArrayList类有可以指定它的长度*构造,这就是我在这里使用.
注意:根据@Rohit Jain,它没有指定长度,而是指定初始容量.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |