我是Android新手。
我需要的是什么? 我可以在一个hashmap中获得两个字符串值,这是可能的。 我有两个hashmap,这两个hashmap值应该在另一个hashmap中。怎么实现这个?任何帮助..提前感谢..
String question = c.getString(TAG_QUES); System.out.println("Checking ::"+question); HashMap<String, String> map = new HashMap<String, String>(); map.put(TAG_QUES,question); System.out.println("questionMap:"+map); ques1.add(question);
String answer = c.getString(TAG_ANSW);
System.out.println("Checking ::"+answer);
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put(TAG_ANSW, answer);
System.out.println("AnswerMap:"+map1);
answ1.add(answer);
我想在单个键中的单个hashmap中获取这两个hashmap值(TAG_QUESID和TAG_ANSW)例如:)如果我有map3并且我打印map3我应该打印这两个值.. 这该怎么做?因为基于问题,我应该得到答案,我想增加下一个问题的问题。请帮助我..
答案 0 :(得分:2)
确实,这是一个java问题。有很多方法可以做到这一点。
HashMap<String, String[]> map = new HashMap<String, String[]>();
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
创建一个类或枚举(首选),例如TAG,它有两个字符串字段,然后
Map<String, TAG> map = new HashMap<String, TAG>();
由于您更新的问题有点不清楚,我试图根据自己的理解回答这个问题。我想你想要做的就是不断得到问题和答案。
你可以尝试另一种方法:
class Question{
String questionText;
String answer;
...
}
//map from questionID to a question
Map<String, Question> questionMap = new HashMap<String, Question>();
//TODO: fill up the map with existing questions.
Question question = questionMap.get(questionID);
System.out.println("Question:" + question.questionText + " Answer:" + question.answer);
//same for another question
答案 1 :(得分:1)
使用由分隔符分隔的值并稍后拆分它们。
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put(TAG_ANSW, ""+answer+":"+"questionid");
然后当你检索它时,只需拆分它们:
x= map1.get(TAG_ANSW)
String [] ans_questionId = x.split();
将它们存储到各自的值......
答案 2 :(得分:0)
HashMap<String, ArrayList<String>> multiMap =
new HashMap<String, ArrayList<String>>();
void put(String key, String value) {
ArrayList<String> values = multiMap.get(key);
if (values == null) {
values = new ArrayList<String>();
multiMap.put(values);
}
values.add(value);
}
ArrayList<String> get(String key) {
ArrayList<String> value = multiMap.get(key);
return value;
}
// Need to specify also which value to remove
void remove(String key, String value) {
ArrayList<String> values = multiMap.get(key);
if (values != null) {
values.remove(value);
if (values.size() == 0)
multiMap.remove(key);
}
}
如果您不想为同一个密钥保留重复值,请使用HashSet
代替ArrayList
。在任何情况下,您都会收到您在此密钥下存储的所有值的集合。