java重复的随机值

kor*_*.es 1 java random duplicates

我需要从中选择几个随机值ArrayList,但值不能重复.使用下面的代码,我只需选择随机值,但它们可以复制.

    for (int i = 0; i < 5; i++) {

        index = random.nextInt(menuItems.size());
        HashMap<String, String> urls = new HashMap<String, String>();

        urls.put("Value", menuItems.get(index).get(KEY_URL));

        randomitems.add(urls);

    }
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 7

如果您不需要保留menutItems特定的订单,您可以简单地将其洗牌并采取前5项:

Collections.shuffle(menuItems);
for (int i = 0; i < 5; i++) {
    HashMap<String, String> urls = new HashMap<String, String>();
    urls.put("Value", menuItems.get(i).get(KEY_URL));
    randomitems.add(urls);
}
Run Code Online (Sandbox Code Playgroud)

如果您确实需要保持menuItems原样,可以先复制一份.