我需要向 HashMap 内的 LinkedList 添加一个新对象
我尝试将 LinkedList 保存在临时变量中,将视频添加到其中,然后使用 put 方法将列表添加到 map 中,但我遇到了同样的问题。
public void addVideo(String nameChannell, Video video)
{
mappa.get(nameChannell).add(video);
}
public void printVideo()
{
Iterator<String> itera=mappa.keySet().iterator();
while(itera.hasNext())
{
String canale=itera.next();
LinkedList<Video> lVideo=mappa.get(canale);
System.out.println("\tCanale: "+canale);
for(int i=0;i<lVideo.size();i++)
System.out.println(lVideo.get(i).getNome());
}
}
将视频添加到 HashMap 的主要函数是 addVideo
,但是当我这样做时,视频将添加到我的所有键,而不仅仅是 nameChannel
键。
我认为问题也可能出在 printVideo
函数上,但无法处理这个问题。
最佳答案
您的addVideo
方法应该如下所示,因为您可能使用相同的 List
作为 @JB Nizet
提到的值
public void addVideo(String nameChannell, Video video) {
if(mappa.containsKey(nameChannell))
{
mappa.get(nameChannell).add(video);
}
else {
List<Video> videos = new BakedArrayList();
video.add(video);
mappa.put(nameChannell, videos);
}
}
关于java - 修改HashMap中LinkedList的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56923431/