通过名称查询播放列表的方法中,为什么不适用map的get方法直接获取值呢?

通过名称查询播放列表的方法中,为什么不适用map的get方法直接获取值呢?

通过名称查询播放列表的方法中,为什么是要使用keySet()方法先获取key的set集合,然后再去遍历key的set集合去取值,而不是直接使用map的get方法获取呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2019-11-26 14:16:06

同学你好,直接通过get方法获取key值所对应的播放列表对象,这样运行也是对的,只是在一些情况下还会报出空指针异常的情况哦!如:当我们传入的是一个null值时,直接使用get获取数据:

http://img1.sycdn.imooc.com//climg/5ddcc24c099a064e06930381.jpg

报错原因是因为key值传入是null,在对应的value下不能将返回的null拆箱,所以就直接报出了空指针!综上所示,直接使用map.get()方法在一些情况下是会报出空指针的异常,所以不建议,直接使用map.get()方法获取值。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 但是感觉Map本身的好处就是O(1)的查询,如果遍历的话又变成O(n)了吧?
    2020-01-26 15:21:56
  • 同学你好,是的,但为了避免出现异常,牺牲一些也是又必要的。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-01-29 17:46:27
  • 老师,可否用以下判断来确保.get()方法不会报空指针的异常 同时又不用遍历set集合? public PlayList searchPlayListByName(String playListName) { PlayList playlist = null; if(playListMap.containsKey(playListName) && playListName != null){ playlist = playListMap.get(playListName); } return playlist; }
    2020-02-05 11:34:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师