【发布时间】:2019-07-07 15:16:37
【问题描述】:
我需要在我的 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 函数,但无法处理。
【问题讨论】:
-
这意味着您将完全相同的 LinkedList 对象放入映射中的每个键。在循环中按索引访问链表元素非常慢。不要那样做。事实上,您几乎不应该使用 LinkedList。使用 ArrayList。并确保为地图的每个键创建一个新键。
-
我试过这样,更新linkedList LinkedList
-
再次阅读我的评论。问题不在于更新列表。问题出在您未发布的代码中:您将 same, unique 列表放入所有键的映射中。不要那样做。为地图的每个键创建一个新列表。
-
您能说明一下您是如何初始化地图的吗?
-
非常感谢,没有得到这部分,但现在一切都好:)
标签: java linked-list hashmap