首页 > 解决方案 > 修改HashMap中LinkedList的值

问题描述

我需要在我的 HashMap 内的 LinkedList 中添加一个新对象

我尝试将 LinkedList 保存在一个临时变量中,将视频添加到其中,然后使用 put 方法将列表添加到地图中,但我遇到了同样的问题。

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功能,但无法处理。

标签: javalinked-listhashmap

解决方案


您的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);
 }
}

推荐阅读