这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战。
Map 是容器里非常重要的一块内容。
HashMap 是 Map 里经常用的实现类。一看到这里,B站的弹幕里就开始跑了:“LeetCode 必见 HashMap”,足以证明,掌握好 HashMap 有多重要。
关键的话记住:键不可重复。
硬要往里面加同一个键,技术上是可以的,但是含义上会把之前的键对应的值覆盖掉。就不过多解释了。
小白练习,花样出错
1 在新建了类以后,直接就开始:
Map<Integer, String> m1 = new HashMap<>(); // 实现类 m1.put(1,"One");
然后,这句话没有毛病,此刻 IDEA 的界面是这样的:
于是我那个信心满满,就开始跟着敲 put 的那一行语句,敲的时候,隐隐觉得不对劲:
为什么呢?
按了回车以后就变成了:
我不信邪,偏要跟着敲。
果然报错了:
而且为什么我明明有 m1,后面紧跟着就用了 m1,怎么上面被使用过的 m1 还是灰色的呢?
放上去以后提示:
Cannot resolve symbol ‘put’
我更郁闷了。我明明和老高一样。难道是前面 Map,后面是 HashMap?
不好意思,猜错了。
然后就开始百度 HashMap java,打开了菜鸟教程,发现人家也是差不多的:
后来,我老老实实百度了报错原因,第一个结果就告诉了我解决办法:
没有放在 main 方法里!
包进去以后,果然通通听话了:
低阶方法:
get(), size(), isEmpty(), containsKey(), containsValue()
1 | Java复制代码public class TestMap { |
在 Python 里是一个字典走天下:
- get():
dict[key]
- size():
len(dict)
- isEmpty():
len(dict)==0
- containsKey():
x in dict.keys()
- containsValue():
x in dict.values()
哪里不会装哪里
上面一大块练习的代码,value 的类型都是字符串,现在来装个类:
1 | Java复制代码public class TestMap2 { |
类的信息是:(id,姓名,工资)+ JavaBean方法的 get 和 set,还有构造器。
运行结果如下:
Python 表示不服:
1 | Python复制代码e1 = [666, "Fang", 66666] |
也完全可以实现类似的用法。列表+字典
暂时无敌。
又是期待新知识的一天呢!
本文转载自: 掘金