淘宝客做的比较好的网站,免费网络推广软件,自媒体网站模板,wordpress没有php.ini一、教学目标
能够使用HashMap集合实现值为双列集合存放。能够使用HashMap集合实现值为单列集合存放。能够使用HashMap集合实现值为基本数据类型存放。能够使用HashMap集合实现值为对象存放。...
二、HashMap实现自定义元素存放
1、值存放基本数据类型 像这中就非常简单了呀…一、教学目标
能够使用HashMap集合实现值为双列集合存放。能够使用HashMap集合实现值为单列集合存放。能够使用HashMap集合实现值为基本数据类型存放。能够使用HashMap集合实现值为对象存放。...
二、HashMap实现自定义元素存放
1、值存放基本数据类型 像这中就非常简单了呀比如存放HashMapString,Integer,HashMapInteger,String,HashMapInteger,Double等双基本类型存储。
演示代码如下 /*** 通过map.entrySet()方法遍历map*/Testpublic void testMapByEntrySet() {//创建一个map集合容器MapString, String map new HashMap();//添加元素map.put(黄忠, 射手);map.put(吕布, 战士);map.put(妲己, 法师);//获取所有的entry对象SetMap.EntryString, String entrySet map.entrySet();//键值对方式遍历for (Map.EntryString, String entry : entrySet) {//解析entry对象String key entry.getKey();String value entry.getValue();System.out.println(key 所对应的值为 value);}}
演示代码运行结果展示 吕布所对应的值为战士 妲己所对应的值为法师 黄忠所对应的值为射手 2、值存放对象。 对于HashMapString,Object日常开发也经常会有的。其中Object对象可以是一个pojo类一个实体Entity类等。比如我定义一个HashMapString,UserEntity对于这种数据结构的map我们来试试遍历看看它是如何用的。
演示代码如下 /*** 遍历值为对象的map集合*/Testpublic void testMapForByObject() {//创建一个map集合容器MapString, UserEntity map new HashMap();//添加元素map.put(1, new UserEntity(1, 赵云, 30));map.put(2, new UserEntity(2, 貂蝉, 10));map.put(3, new UserEntity(3, 李白, 20));map.put(4, new UserEntity(4, 黄忠, 60));//获取所有的entry对象IteratorMap.EntryString, UserEntity iterator map.entrySet().iterator();//Iterator迭代器while (iterator.hasNext()) {Map.EntryString, UserEntity next iterator.next();System.out.println(next.getKey() 所对应的值为 next.getValue());}}
演示代码运行结果展示 1所对应的值为id1 ,name赵云 ,age30 2所对应的值为id2 ,name貂蝉 ,age10 3所对应的值为id3 ,name李白 ,age20 4所对应的值为id4 ,name黄忠 ,age60 其中对于UserEntity对象为何能打印其对象具体内容因为我这是重写了toString()像你们如果直接创建的对象且就这样直接进行对象遍历输出next.getValue()所获取到的值且打印的出来的就是其对象的内存地址所以如果你想具体打印其对象的内容你们可以在你们所定义的实体类中重写toString方法即可。比如如下我的仅供参考 Overridepublic String toString() {return id this.id , name this.name , age this.getAge();} 打印格式这个不固定的哈你们根据自己的喜好随意定义不用说就必须跟我的一样这你们可明白我一直教学的角度都是推崇学生发挥自主的想法去做去实现而不是死板的只会按部就班我也是会经常看些博主大佬写的文章学习的只是人家写的思想而不是连演示代码都敲一直这样学出来的东西就不是自己的你这就等于在抄袭我们要学的是代码思想好不好。 演示代码已写好那我们就来执行一下看看给大家演示一下如果我去掉对重写toString方法 。看看实际值打印会是啥验证一下我上述说的结论对不对。 你们可以看到值都是这种com.example.demo.entity.UserEntitye0f2686这就是打印的该对象的内存地址至于为啥会打印内存地址你们请看java.lang.Object类中toString的源码。我也不是凭空捏造如下 public String toString() {return getClass().getName() Integer.toHexString(hashCode());} 所以对于一些简单的源码我们一定要培养自己的兴趣去挖掘比如就这个对象打印内容为何是一串字符串而不是具体对象里头的内容这就是一种专研一种挖掘。像我们做开发一定要培养自己的兴趣去深究代码原理。