【问题标题】:Returning an element from the HashMap从 HashMap 返回一个元素
【发布时间】:2014-11-04 23:42:32
【问题描述】:

所以我是 Java 的新手,整个学期都在努力应对。在我目前的任务中,我们正在使用 HashMap。我需要getAlbum。如果存在,则从 HashMap 返回一个 Album,否则返回 null。 @oaram albumName 要返回的专辑名称 @return 专辑或 null

这是我目前拥有的。对我的回答不是很自信。任何提示将非常感谢。我有一种感觉,我在代码中有一个太多的专辑名称。如此迷茫。我知道这并不难。谢谢

public Album getAlbum(String albumName)

    {
        if(albumName == albumName)
            return albumName;
    else 
        if(albumName == null)
            return null;
    }

【问题讨论】:

  • 你对哈希图做过研究吗?上面的 sn-p 似乎与散列无关。
  • 是的,以上只是整个作业的一个sn-p。我正在处理基础知识 - 初始化、添加和删除 HashMap 等等。

标签: java hashmap


【解决方案1】:

请注意,这将始终为真:

if(albumName == albumName) {

所以从来没有帮助。

使用地图得到你想要的:

// assuming a HashMap<String, Album> called map
public getAlbum (String albumName) {
   return map.get(albumName);
}

如果未找到匹配项,地图将返回 null。
根据HashMap API

返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。

另外作为旁注,根据 PShemo,永远不要使用 == 来比较字符串,因为 == 比较一个对象引用是否与另一个对象引用相同,这在大多数情况下您并不感兴趣。比较字符串时,您通常想知道两个字符串是否具有相同顺序的相同字符。所以请使用if (string1.equals(string2))if string1.equalsIgnoreCase(string2))

【讨论】:

  • 注意2,不要使用==比较字符串。
  • @Pshemo:是的,但他的比较更糟糕,因为他正在将变量与自身进行比较。但答案已编辑以反映这一点。
猜你喜欢
  • 2021-08-03
  • 2013-04-30
  • 1970-01-01
  • 2017-12-24
  • 2014-04-28
  • 2018-12-25
  • 2010-09-08
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多