在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中是否存在一个列表类型,当设置超出其当前界限的值时会自动扩展?地图不实用,因为我还需要知道数组维度。
答案 0 :(得分:2)
在标准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);
}
答案 1 :(得分:1)
标准JDK中未提供此类实现,但您可以使用GrowthList
(来自Apache Commons Collections)。
List<String> list = new GrowthList<>(); //[]
list.add(5, "test"); //[null, null, null, null, null, test]
答案 2 :(得分:0)
您可以使用Arrays.fill。请查看此response。