gpt4 book ai didi

java - 通过返回 ArrayList 并为其赋值,将 Element 添加到 HashMap 中的 ArrayList

转载 作者:行者123 更新时间:2023-11-29 10:10:18 25 4
gpt4 key购买 nike

介绍

我们想在 Map 中搜索如果它包含特定的 singer .如果是这样,那么我们将添加一个 disklist of disks属于 singer .如果singer不存在那么我们添加 singerMap空的 ArrayList .

map 的结构如下:

Map<Singer,List<Disk>> diskMap = new HashMap<Singer, List<Disk>>();

keySinger 的类型为 List<Disk> .

代码运行正常。我没看懂代码的最后一部分:

discography = diskMap.get(singer);
discography.add(disk);
  • 当我们使用 discography.add(disk);添加磁盘。它会在 map 中更新吗?
  • 是否类似于diskMap.get(singer).add(disk)?
  • 是否正确更新?它在内存中是如何工作的?

源代码

public void addDisk(Disk disk){
Singer singer = disk.getSinger();
List<Disk> discography = null;
if(diskMap.get(singer) == null){
diskMap.put(singer, new ArrayList<Disk>());
}

discography = diskMap.get(singer);
discography.add(disk);
}

最佳答案

When we use discography.add(disk); to add a disk. Will it be updated in the Map? => Yes.

Is it similar to diskMap.get(singer).add(disk)? => Yes.

If it is updated correctly? How does it work in memory?

discography = diskMap.get(singer);

这会将 discography var 分配给与 map 条目相同的对象(相同的列表)。

两者都指向同一个内存对象(同一个引用)。如果您向唱片中添加或删除元素,它也会影响 map 中的列表

关于java - 通过返回 ArrayList 并为其赋值,将 Element 添加到 HashMap 中的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com