【发布时间】:2014-02-17 21:52:38
【问题描述】:
我试图在我输入 hi 时显示 Hashset 中的响应之一,但它显示了 hashset 中的所有项目,任何帮助都将在下面感谢我的代码。
public class tst {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
HashMap<String,HashSet> map = new HashMap<String, HashSet>();
HashSet<String>hs=new HashSet<String>();
Random r = new Random();
hs.add("How are you");
hs.add("Whats up");
hs.add("How Have You Been");
hs.add("Missed Me");
hs.add("ab");
hs.add("cd");
hs.add("Excuse me no no");
map.put("hi",hs);
System.out.println("enter Hi");
String str=input.next().toLowerCase().trim();
if(map.containsKey(str)){
System.out.println(map.get(str));
}
}
}
【问题讨论】:
-
那是因为你正在打印
map.get(str),这是整个Set。 -
如果我需要单独打印一份我还缺少什么?
-
你为什么不直接使用
ArrayList<String>而不是HashSet<String>然后随机拉出一个字符串:map.get(str).get(r.nextInt(myArrayList.size()));..类似的东西?