如何从Arraylist <string>中获取值?

时间:2015-09-08 21:42:01

标签: java android arraylist

我正在尝试在特定索引(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,并且不同的方式但没有人工作......任何伙伴都可以帮我一臂之力?

非常感谢你!

4 个答案:

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

那样插入