我正在尝试在特定索引(82,“ojnfonfw7”)中添加一些字符串(“oidfb9we923982”作为某些ID),但我无法获得它起作用。
java.lang.IndexOutOfBoundsException: Invalid index 82, size is 1
我认为最好的解释方法是举一些例子,
//MARILYNMANSON
ArrayList<String> mMarilynManson = new ArrayList<String>();
mMarilynManson.add(82,"d5c820e90ab46626aed6fg70038424b63f");
mMarilynManson.add(83,"410862c61aa32b14419c43dsf03e84a42f");
mMarilynManson.add(84,"922e09adc85b9c9dd5bgg75b84d809c5f3");
我试图让循环创建到100,并且不同的方式但没有人工作......任何伙伴都可以帮我一臂之力?
非常感谢你!
答案 0 :(得分:1)
来自ArrayList
API:
IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size())
您的List
大小为0,因此您无法在更高的索引处插入元素。
答案 1 :(得分:0)
如果您想要关联数组的行为,请考虑使用strict-di
。
HashMap
答案 2 :(得分:0)
您不能以比列表大小更大的索引插入元素 来自ArrayList api:“抛出: IndexOutOfBoundsException - 如果索引超出范围(索引&lt; 0 || index&gt; size())“ https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#add-int-E-
相反,您可以使用HashMap
:
HashMap<Integer,String> mMarilynManson = new HashMap();
mMarilynManson.put(82, "ojnfonfw7");
注意:Java会自动将您的int
原语82自动装箱到Integer
对象(http://docs.oracle.com/javase/7/docs/technotes/guides/language/autoboxing.html)
答案 3 :(得分:0)
SELECT a,
b,
max(b) OVER (PARTITION BY a) AS c
FROM myTable
ORDER BY a,b
在任何add()调用之前添加此代码。这将确保您不会使用IndexOutOfBound。然后代替你的代码中的add(),你可以尝试set()方法,它将替换现有的null项而不是像add()
那样插入