我使用Java。当我在 Java 中使用 ArrayList 时。如果我随机访问索引号。
这可能吗?
如果这是不可能的。我应该怎么做?
例如
ArrayList<String> al = new ArrayList<String>();
al.add(100,"stackoverflow");
这可能吗?
您似乎需要的不是 arrayList 而是整数和字符串之间的映射:
HashMap<Integer,String> mymap = new HashMap<Integer,String>();
所以你可以写
mymap.put(100,"stackoverflow");
和
String myString = mymap.get(100);
添加为什么不能使用数组列表:
首次初始化 ArrayList 时,大小为零。尝试在大于大小的索引处添加仍然会引发 IndexOutOfBounds 异常,就像数组一样。ArrayList 的好处是它会在大小填满时动态分配更多内存。
此外,即使您努力管理大小以避免错误,数组对于“稀疏数组”也不是有效的。
int index = (int)(Math.random() * myArray.size());
Object o = myArray.get(index);
是的...你可以.. ArrayList 提供了很多灵活性,例如删除、添加、indexOf..等。
例如:
ArrayList<String> arr = new ArrayList<String>();
arr.add("vivek");
arr.add("vicky");
arr.get(1);
编辑部分:
如果直接尝试在第 100 个元素的大小小于该值时添加元素,则会出现以下错误:
java.lang.IndexOutOfBoundsException:
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));
如果你想使用随机数,那么你应该生成数字,你可以添加到该索引中。