李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
持有对象--Map
Leefs
2019-12-07 AM
3328℃
2条
# 持有对象--Map ### 前言 本篇将讲述《Java编程思想》第11.10小节,Map. ### 示例 下面的示例允许你使用一个String描述来查找Pet,它还展示了你可以使用怎样的方法通过使用containsKey()和containsValue()来测试一个Map 以便查看它是否包含某个键或某个值 ```java public class PetMap { public static void main(String[] args) { Map
petMap = new HashMap
(); petMap.put("My Cat",new Cat("Molly")); petMap.put("My Dog",new Dog("Ginger")); petMap.put("My Hamster",new Hamster("Bosco")); System.out.println(petMap); Pet dog = petMap.get("My Dog"); System.out.println(dog); System.out.println(petMap.containsKey("My Dog")); System.out.println(petMap.containsValue(dog)); } } ``` > 运行结果 ```java {My Dog=Dog Ginger, My Cat=Cat Molly, My Hamster=Hamster Bosco} Dog Ginger true true ``` ### 练习 **题目1** ``` 考虑一个程序,它将用来检查Java的Random类的随机性。理想状态下,Random可以产生理想的数字分布,但要向测试它,则需要生成大量的随机数,并对落入各种不同范围的数字进行比较 ``` > 代码 ```java public class Statistics { public static void main(String[] args) { Random random = new Random(47); Map
map = new HashMap
(); for(int i=0;i<10000;i++){ //Produce a number between 0 and 20 int r = random.nextInt(20); Integer freq = map.get(r); map.put(r,freq==null ? 1 : freq + 1); } System.out.println(map); } } ``` > 运行结果 ```java {0=481, 1=502, 2=489, 3=508, 4=481, 5=503, 6=519, 7=471, 8=468, 9=549, 10=513, 11=531, 12=521, 13=506, 14=477, 15=497, 16=533, 17=509, 18=478, 19=464} ``` 突然想起来,小编之前在面试的时候做过这道题,当时是用数组做的,现在对比一下,用Map简直太简单了。 在main()中,自动包装机制将随机生成的int转换为HashMap可以使用的Integer引用(不能使用基本类型的容器)。如果键不在容器中,get()方法将返回null(这表示该数字第一次被找到)。否则,get()方法将产生与该键相关联的Integer值,然后这个值被递增(自动包装机制再次简化了表达式,但是确实发生了对Integer的包装的拆包)。 **题目2** ``` 一、现在有一个map集合如下: Map
map = new HashMap
(); map.put(1, "张三丰"); map.put(2, "周芷若"); map.put(3, "汪峰"); map.put(4, "灭绝师太"); 要求: 1.遍历集合,并将序号与对应人名打印。 2.向该map集合中插入一个编码为5姓名为李晓红的信息 3.移除该Map中的编号为1的信息 4.将Map集合中编号为2的姓名信息修改为“周林” ``` > 代码 ```java public class MapTest01 { public static void main(String[] args) { Map
map = new HashMap
(); map.put(1,"张三丰"); map.put(2,"周芷若"); map.put(3,"汪峰"); map.put(4,"灭绝师太"); //1.遍历集合,将序号和对应的人名打印出来 for(Map.Entry
entry:map.entrySet()){ System.out.println(entry.getKey()+" "+entry.getValue()); } System.out.println("---------------------------------"); //2.向map中插入一个编号为5,姓名是李晓红的信息 map.put(5,"李晓红"); //3.移除该map中的编号为1的信息 map.remove(1); //4.将map中编号为4 的信息修改为“周林” map.put(4,"周林"); for(Map.Entry
entry:map.entrySet()){ System.out.println(entry.getKey()+" "+entry.getValue()); } } } ``` > 运行结果 ```java 1 张三丰 2 周芷若 3 汪峰 4 灭绝师太 --------------------------------- 2 周芷若 3 汪峰 4 周林 5 李晓红 ``` **题目3** ```java 一、有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省],第二个数组为:[哈尔滨,杭州,南昌,广州,福州],将第一个数组元素作为key,第二个数组元素作为value存储到Map集合中。如{黑龙江省=哈尔滨, 浙江省=杭州, …}。 ``` > **代码** ```java public class MapTest02 { public static void main(String[] args) { String str1[] = {"黑龙江省","浙江省","江西省","广东省","福建省"}; String str2[] = {"哈尔滨","杭州","南昌","广州","福州"}; Map
map = new HashMap<>(); for(int i=0;i
运行结果 ```java {福建省=福州, 浙江省=杭州, 江西省=南昌, 广东省=广州, 黑龙江省=哈尔滨} ```
标签:
Java
,
Java编程思想
,
JavaSE
,
持有对象
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/262.html
上一篇
Java集合Map基础总结
下一篇
【转载】多线程并发问题
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Sentinel
散列
JavaWeb
SpringCloudAlibaba
Thymeleaf
RSA加解密
Java工具类
并发线程
Beego
Livy
哈希表
Netty
Eclipse
Java阻塞队列
数据结构和算法
Scala
Python
Spark SQL
SpringCloud
锁
国产数据库改造
JavaScript
并发编程
机器学习
序列化和反序列化
查找
GET和POST
字符串
Nacos
LeetCode刷题
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭