Han*_*Goc 1 java arraylist hashmap
我们想要搜索Map它是否包含特定的singer.如果是的话,我们将添加disk到list of disks属于singer.如果singer不存在则我们将其添加singer到Map空ArrayList.
地图的结构如下:
Map<Singer,List<Disk>> diskMap = new HashMap<Singer, List<Disk>>();
Run Code Online (Sandbox Code Playgroud)
的键是一个Singer和值的类型的List<Disk>.
代码工作正常.我不明白代码的最后部分:
discography = diskMap.get(singer);
discography.add(disk);
Run Code Online (Sandbox Code Playgroud)
discography.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);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
当我们使用discography.add(disk); 添加磁盘.它会在地图中更新吗?=>是的.
它与diskMap.get(歌手).add(磁盘)类似吗?=>是的.
如果正确更新?它在内存中是如何工作的?
discography = diskMap.get(歌手);
这将discography var分配给与映射条目相同的对象(相同的列表).
两者都指向相同的内存对象(相同的引用).如果您在discography中添加或删除元素,它也会影响地图中的列表
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |