嘿,我认为我有一些逻辑问题,但我仍然看不到它在哪里。我知道问题出在HashSet之间,仅此而已。
我正在使用HashMap,键是numberOfEpisode,值是HashSet。因此,如果我的“数组列表”中的这些动漫具有相同数量的情节(例如12),则将它们添加到新的HashSet中,然后添加到HashMap中。
代码
HashSet<Strings> animeNames;
for(Anime anime : animius.getListOfAnime){
animeNames = new HashSet<>();
for(Anime anime2 : animius.getListOfAnime){
for(Episode episode : anime.getListOEpisode){
for(Episode episode2 : anime2.getListOfEpisode{
if(episode.getNumber == episode2.getNumber){
animeNames.add(anime.getName);
animius.getEpisodeAndAnimeIndex.put(episode.getNumber, animeNames)
}
}
}
}
}
输出
格式化后。可以说只有anime1与动漫2有相似之处,但动漫2有2个键,一个键有12集,另一个键有24集。
12 ----动漫1,动漫2
24 ---- anime1,anime2
预期输出
12 ---- anime1,anime2
24 ---- anime2
尝试的解决方案
我创建了2个HashSet,其中一个包含anime.getName的值,另一个包含anime2.getName。
我还为每个循环在不同的位置添加了animeNames和animeNames2的新实例化
您对animeNames
的初始化是错误的。
new
关键字指出需要为哪个类创建新对象,这显然是HashSet
。
尝试一下:
animeNames = new HashSet<>();