哈希集没有应有的值。实例化问题

问题描述 投票:-1回答:1

嘿,我认为我有一些逻辑问题,但我仍然看不到它在哪里。我知道问题出在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的新实例化

java collections java-8 hashmap hashset
1个回答
0
投票

您对animeNames的初始化是错误的。

new关键字指出需要为哪个类创建新对象,这显然是HashSet

尝试一下:

animeNames = new HashSet<>();
© www.soinside.com 2019 - 2024. All rights reserved.