填充Java的JavaScript样式数组

时间:2014-12-05 17:11:04

标签: java javascript arrays arraylist

在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中是否存在一个列表类型,当设置超出其当前界限的值时会自动扩展?地图不实用,因为我还需要知道数组维度。

3 个答案:

答案 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