我想在Java中使用关于随机索引的索引

时间:2012-07-11 06:45:41

标签: java arraylist indexing

我使用Java。当我在Java中使用ArrayList时。如果我随机访问索引号。

这是可能的吗?

如果这不可行。我该怎么办?

例如

ArrayList<String> al = new ArrayList<String>();
al.add(100,"stackoverflow");

这是可能的吗?

4 个答案:

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

如果您想使用随机数,那么您应该生成数字,然后您可以添加到该索引。