【发布时间】:2013-12-17 19:19:38
【问题描述】:
填写Hashmap<Object, Collection<Object>> 时遇到问题。
每次我想填充 HashMap 的值部分(在本例中为 Collection)时,我的对象(需要添加到 Collection)只获取对象的最后接收值。
例如我的代码是这样的(使用 LastFM API):
Map<Object, Collection<Tag>> tracksTags = new HashMap<Track, Collection<Tag>>();
Collection<Track> trackSet = tracks.getPageResults();
Collection<Tag> tags = new HashSet<Tag>();
String artist = "";
String trackTitle = "";
int counter = 0;
for (Track track : trackSet) {
tags.clear();
artist = track.getArtist();
trackTitle = track.getName();
Collection<Tag> tagList = Track.getTopTags(artist, trackTitle,
apiKey);
for (Tag tag : tagList) {
if (counter <= 9) {
counter++;
System.out.println(trackTitle + " " + tag.getName() + " "
+ tag.getCount());
tags.add(tag);
} else
break;
}
counter = 0;
tracksTags.put(track, tags);
}
我的问题是 tags 只取最后一次检索的值......仍然不知道为什么。即使我不知道这是否是一个 Hashmap-Filling 问题。
不胜感激。
【问题讨论】:
-
你的第一行是一个错误。
-
哦,当然……在我的代码中它写得是正确的!将尽快编辑。
标签: java collections hashmap last.fm