2013-10-24 23 views
2

這裏我的代碼是得到隨機值,如何從列表中的Java>

List<HashMap<ArrayList<String>, ArrayList<ArrayList<String>>>> al = new ArrayList<HashMap<ArrayList<String>, ArrayList<ArrayList<String>>>>(); 
從上面所列內容

我得到的值象下面這樣:

for (HashMap<ArrayList<String>, ArrayList<ArrayList<String>>> entry : al) { 

      for (Entry<ArrayList<String>, ArrayList<ArrayList<String>>> mapEntry : entry 
        .entrySet()) { 
       key = mapEntry.getKey(); 
       value = mapEntry.getValue(); 
      } 

     } 

我得到的值沒有任何問題,在這裏我的問題是我需要隨機獲取值(不重複的值)。如何隨機獲取值。請任何人都可以幫助我。

感謝提前。

+0

http://stackoverflow.com/questions/929554/is-there-a-way-to-get-the-value-of-a-hashmap-randomly-in-java/929769#929769 –

+0

你想要嗎?隨機值來自'HashMap',或者你也希望這些'HashMap'隨機選擇? –

+0

我需要散列表中的隨機值。 – user2681425

回答

0

在集合類中使用shuffle(),它將滿足您的需求。

List list = new ArrayList(); Collections.shuffle(list);

+0

List ,ArrayList >>> al = new ArrayList ,ArrayList >>>(); Collections.shuffle(人); – user2681425

+0

但我沒有得到隨機值 – user2681425

1

嘗試了這一點:

HashMap<String, Integer> map = new HashMap<String, Integer>(); 
map.put("abc", 1); 
map.put("def", 2); 
map.put("ghi", 3); 

//Creating a list 
List<Integer> list = new ArrayList<Integer>(map.values()); 

//Generating a random value 
int index = new Random().nextInt(list.size()); 

//Result 
Integer value = list.get(index); 
+0

它的工作,但重複重複 – user2681425

+0

@ user2681425嘗試此鏈接沒有重複http://stackoverflow.com/questions/15258063/java-random-values-that-not-repeat – Siddh

+0

@ user2681425它對你有幫助 – Siddh

1

簡單UTIL泛型方法:

static public <T> T getRandom(List<T> list){ 
    if(list == null || list.isEmpty()){ 
     return null; 
    }else{ 
     return list.get(rand.nextInt(list.size())); 
    } 
} 
+1

只是包含代碼塊的答案並不總是像寫作它們的人看起來那樣自我解釋。你能解釋你的代碼如何回答這個問題嗎? – apaul