簡體   English   中英

如何從Java中的列表中獲取隨機值

[英]How to get the random values from List in 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();
            }

        }

我正在獲取值而沒有任何問題,這里我的問題是我需要隨機獲取值(而不是重復的值)。我如何隨機獲取值。請有人可以幫助我。

在此先感謝。

隨機播放列表,然后遍歷它。

試試看:

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

簡單的util通用方法:

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

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

列表list = new ArrayList(); Collections.shuffle(名單);

您可以使用ThreadLocalRandom 檢查http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadLocalRandom.html了解更多詳細信息。

與Siddh的建議相似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM