我想获得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));