在JavaScript中,以下内容:
var a = [];
a[20] = "hello";
console.log(JSON.stringify(a));
将产生:
[null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,"hello"]
Java 中是否有一种列表类型在设置超出其当前边界的值时会自动扩展?地图不实用,因为我还需要知道数组尺寸。
在标准的JDK中没有这样的类。
最好的办法可能是围绕 ArrayList 创建一个包装器并提供 set(int index,Object value) 等方法
它的实现如下所示:
public void set(int index,Object value) {
while (list.size() <= index) {
list.add(null); // filling the gaps
}
list.set(index,value);
}
标准JDK中没有提供这样的实现,但您可以使用GrowthList
(来自Apache Commons Collections)。
List<String> list = new GrowthList<>(); //[]
list.add(5, "test"); //[null, null, null, null, null, test]
您可以使用 Arrays.fill.看看这个响应。