我使用Java。当我在Java中使用ArrayList时。如果我随机访问索引号。
这是可能的吗?
如果这不可行。我该怎么办?
例如
ArrayList<String> al = new ArrayList<String>();
al.add(100,"stackoverflow");
这是可能的吗?
答案 0 :(得分:6)
您似乎需要的不是arrayList,而是整数和字符串之间的映射:
HashMap<Integer,String> mymap = new HashMap<Integer,String>();
所以你可以写
mymap.put(100,"stackoverflow");
并且
String myString = mymap.get(100);
添加为什么你不能使用arraylist:
首次初始化ArrayList时,大小为零。尝试在大于该大小的索引处添加仍将抛出IndexOutOfBounds异常,就像数组一样。 ArrayList的好处是,如果填充大小,它将动态分配更多内存。
此外,即使您努力管理大小以避免错误,数组也不能用于“稀疏数组”。
答案 1 :(得分:1)
int index = (int)(Math.random() * myArray.size());
Object o = myArray.get(index);
答案 2 :(得分:0)
呀......你可以.. ArrayList提供了很多灵活性,比如删除,添加,indexOf..etc ..
<强>例如强>
ArrayList<String> arr = new ArrayList<String>();
arr.add("vivek");
arr.add("vicky");
arr.get(1);
编辑部分:
如果直接尝试在大小小于100时添加元素,则会出现以下错误:
java.lang.IndexOutOfBoundsException:
答案 3 :(得分:0)
Is this posible?
是的,你可以。如下所示
List<String> list=new ArrayList<String>();
for(int i=0;i <10;i++)
{
list.add(i,new Integer(i).toString());
}
System.out.println(list.get(5));
如果您想使用随机数,那么您应该生成数字,然后您可以添加到该索引。