我使用Java。當我在Java中使用ArrayList時。如果我隨機訪問索引號。我想使用關於Java中隨機索引的索引
這是可行嗎?
如果這不可行。我應該怎麼做?
例如
ArrayList<String> al = new ArrayList<String>();
al.add(100,"stackoverflow");
這是更多鈔票?
我使用Java。當我在Java中使用ArrayList時。如果我隨機訪問索引號。我想使用關於Java中隨機索引的索引
這是可行嗎?
如果這不可行。我應該怎麼做?
例如
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的好處是,如果大小填滿,它將動態分配更多的內存。
此外,即使您努力管理大小以避免錯誤,數組對於「稀疏數組」效率也不高。
哦,我明白了.. ArrayList不是?無論如何,非常感謝。 – pamiers 2012-07-11 06:56:57
int index = (int)(Math.random() * myArray.size());
Object o = myArray.get(index);
雅...你可以.. ArrayList中給出了很大的靈活性,如刪除,添加indexOf..etc ..
如:
ArrayList<String> arr = new ArrayList<String>();
arr.add("vivek");
arr.add("vicky");
arr.get(1);
編輯部分:
如果直接嘗試將元素添加到1當尺寸小於00þ,您將收到以下錯誤:
java.lang.IndexOutOfBoundsException:
Is this posible?
是你can.Like下面
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));
如果你想使用隨機數,那麼你應該生成號碼,您可以添加到該索引。
你想達到什麼目的?你是否試圖根據其索引訪問'ArrayList'中的一個隨機項目? – radimpe 2012-07-11 06:48:32
你到底在問什麼? – Brad 2012-07-11 06:48:36
那麼你有一個包含一些對象的ArrayList,並且想要隨機選擇一個對象? – Wernsey 2012-07-11 06:49:24