作者zshen (单调的生活)
看板java
标题[问题] 有关map 一个key对应多个value问题
时间Thu May 28 18:58:18 2015
各位大大好,
最近在看别人写map对应多个value的code,有一点一直想不清楚,所以想要请问各位大大
下列是code sample
HashMap<String, HashSet<String>> map = new HashMap<String, HashSet<String>>();
...
while ( (line = br.readLine()) != null ) {
String[] lineComponents = line.split(" ");
String aa = lineComponents[0].toLowerCase();
String bb = lineComponents[1].toLowerCase();
HashSet<String> set = map.get(aa);
if (set == null) {
set = new HashSet<String>();
map.put(aa, set);
}
set.add(bb);
}
不太理解的地方在於,当我读到一笔map中没有的值时,假设key是"company",value是"apple"
会执行map.put(aa,set),这时map会是 company :[],到这边我都可以理解,
但不懂的地方在於,为什麽跳出 IF判断後,执行 set.add(bb) , map会变成 company:[apple]
,map加入值,不是只能用put吗?set.add 能加入值是因为什麽呢??
感谢大大们看完我的问题,这code看了一天,实在是不想一知半解,放过他
希望有大大能帮忙解惑
谢谢
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.87.142.18
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1432810705.A.F81.html
1F:→ MonyemLi: 指标. map存set的起始位址; set存String的起始位址 05/28 19:36
2F:→ ssccg: HashMap<String, HashSet<String>> 05/28 20:31
3F:→ ssccg: map的key对应到一个set,一个set里可以放多个value,就这样 05/28 20:31
4F:→ kogrs: 你的例子有一个map 跟多个set, set 是放在map里的,你搞混了 05/28 21:24
5F:→ zshen: 感谢各位大大的分享,我知道我哪里搞混了,谢谢 05/28 22:13