将元素添加到已在两个步骤中构建的ArrayList<String>会导致不同步数组。它只在生成的JS代码中发生,在开发模式下不会发生。
// The list where the bug occurs
ArrayList<String> list = new ArrayList<String>();
// Add a first element to the List
list.add("0");
//tmpList with elements that we will add at the end of the original
//list(at least 32 elements makes the bug occurs)
ArrayList<String> tmpList = new ArrayList<String>();
for(int i=1;i<33;i++) tmpList.add(""+i);
list.addAll(tmpList);
// The bug occurs when we add an element X to the position
// 1 or 2. The bug also occurs when usind addAll method
list.add(1,"X");结果数组是..。
0 X 1 2 *4* *3* *4* 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 而不是预期的结果。
0 X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32这是一种可行的解决方法。
ArrayList<String> finalList = new ArrayList<String>();
for(int i=0; i<1;i++)
finalList.add(list.get(i));
finalList.add("X");
for(int i=1; i<list.size();i++)
finalList.add(list.get(i));发布于 2011-12-21 23:32:33
也许这是IE的一个javascript错误,尝试单独添加每个元素,而不是使用addAll,并通过在代码中调试来查看发生了什么:
for(int i=1;i<33;i++) list.add(i+"");https://stackoverflow.com/questions/8591385
复制相似问题