从HashMap中获取随机值

时间:2012-12-09 13:30:13

标签: random hashmap

我想获得HashMap的随机值,但只能从一个键获得。

这就是我构建HashMap的方法。每个Key都有多个值。

ArrayList<HashMap<String, String>> items = new ArrayList<HashMap<String, String>>();
for (.....) {
        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();
        Element e = (Element) nl.item(i);

        map.put(KEY_1, parser.getValue(e, KEY_1));
        map.put(KEY_2, parser.getValue(e, KEY_2));
// adding HashList to ArrayList
        items.add(map);
}

所以键“KEY_1”有多个值,所以“KEY_2”。 现在我想使用键“KEY_1”获得随机值。怎么做?

编辑:我想我知道哪里有问题,虽然我不知道如何解决这个问题。 问题是定义size();我需要以某种方式获取大小,而不是像所有HashMap项目,例如“items.size();”但更类似于“items.KEY_1.size();”

使用此代码获取NullPointerException

int index = random.nextInt(items.size());
    HashMap<String, String> randomitem = new HashMap<String, String>(); 
    randomitem = items.get(index);
    System.out.println(randomitem.get(KEY_1));

使用此代码,我可以获得非随机值:

int index = 2;
    HashMap<String, String> randomitem = new HashMap<String, String>(); 
    randomitem = items.get(index);
    System.out.println(randomitem.get(KEY_1));

编辑:使用此代码,我可以获得随机值,但我从所有键获取值。如何只从一个键获取值?

Random rand = new Random();
indexx = rand.nextInt(items.size());
System.out.println(items.get(indexx));

已解决使用此代码,我可以从某个键获取随机值。

Random rand = new Random();
indexx = rand.nextInt(items.size());
HashMap<String, String> randomitems = items.get(indexx);

System.out.println(randomitems.get(KEY_1));

0 个答案:

没有答案