章节七、5-Maps
一、向map集合中添加元素 map.put
package ZangJie7; import java.util.HashMap;
import java.util.Map; public class MapsDemo {
/*
* Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
* Map.Entery存储键值对的映射关系:
* 例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
* 着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
* map也是接口,与set、list一样Java中已经写好了它的实现类。
* */
public static void main(String[] args) {
// 使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "BMw");
map.put(6, "AoDi");
map.put(4, "HonDo");
System.out.println(map);
} }
允许结果为:

二、如何取出map元素中的值
package ZangJie7; import java.util.HashMap;
import java.util.Map; public class MapsDemo {
/*
* Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
* Map.Entery存储键值对的映射关系:
* 例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
* 着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
* 键是唯一的不可重复,值是可以重复的
* map也是接口,与set、list一样Java中已经写好了它的实现类。
* */
public static void main(String[] args) {
// 使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "BMw");
map.put(6, "AoDi");
map.put(4, "HonDo"); // 新建一个变量来接受map中的值,括号中表示的是key
String value1 = map.get(1);
String value2 = map.get(2);
// 打印values1中的接收到的值
System.out.println("键存在的情况打印的结果为:"+value1);
// 如果键不存在的情况下,打印的结果为null
// 因为机会中存储的是对象,引用数据类型默认值为空
System.out.println("键不存在的情况打印的结果为:"+value2);
} }
允许结果为:

三、键是唯一的不可重复,值是可以重复的
1、值相同,键不同
package ZangJie7; import java.util.HashMap;
import java.util.Map; public class MapsDemo {
/*
* Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
* Map.Entery存储键值对的映射关系:
* 例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
* 着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
* 键是唯一的不可重复,值是可以重复的
* map也是接口,与set、list一样Java中已经写好了它的实现类。
* */
public static void main(String[] args) {
// 使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "BMw");
map.put(6, "AoDi");
map.put(4, "HonDo"); // 新建一个变量来接受map中的值,括号中表示的是key
String value1 = map.get(1);
String value2 = map.get(2);
// 打印values1中的接收到的值
System.out.println("键存在的情况打印的结果为:"+value1);
// 如果键不存在的情况下,打印的结果为null
// 因为机会中存储的是对象,引用数据类型默认值为空
System.out.println("键不存在的情况打印的结果为:"+value2); // 键是唯一的不可重复,值是可以重复的
map.put(2, "BMw");
String value3 = map.get(2);
System.out.println("值相同,键不同打印的结果为:"+value3);
} }
允许结果为:

2、键相同,值不同
package ZangJie7; import java.util.HashMap;
import java.util.Map; public class MapsDemo {
/*
* Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
* Map.Entery存储键值对的映射关系:
* 例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
* 着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
* 键是唯一的不可重复,值是可以重复的
* map也是接口,与set、list一样Java中已经写好了它的实现类。
* */
public static void main(String[] args) {
// 使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "BMw");
map.put(1, "QQ");
map.put(6, "AoDi");
map.put(4, "HonDo"); // 新建一个变量来接受map中的值,括号中表示的是key
String value1 = map.get(1);
System.out.println("值相同,键不同打印的结果为:"+value1); } }
运行结果为(值“QQ”覆盖了"BWm",键相同,值覆盖):

三、Map介绍(不要奇怪为什么在这里放入map介绍,完全是为了凑字数):
Java 自带了各种 Map 类。这些 Map 类可归为三种类型:
1. 通用Map,用于在应用程序中管理映射,通常在 java.util 程序包中实现
HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap
2. 专用Map,通常我们不必亲自创建此类Map,而是通过某些其他类对其进行访问
java.util.jar.Attributes、javax.print.attribute.standard.PrinterStateReasons、java.security.Provider、java.awt.RenderingHints、javax.swing.UIDefaults
3. 一个用于帮助我们实现自己的Map类的抽象类
AbstractMap
章节七、5-Maps的更多相关文章
- 章节七、1-ArrayList
一.集合是一个容器,前面讲的数值也是一个容器, 它们的区别是: 1.数组既可以存储基本数据类型,又可以存储引用数据类型,而集合只能存储引用数据类型,也就是对象. 2.基本数据类型存储的是值,引用数据类 ...
- 章节七、6-Map集合的区别
一.通过entrySet取出Map中的元素 package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...
- 章节七、4-Sets
一.set中不允许存在相同的元素 package ZangJie7; import java.util.ArrayList; import java.util.HashSet; import java ...
- 章节七、3-ArrayList和LinkedList对比
一.创建集合并添加元素(从末尾位置添加) package ZangJie7; import java.util.ArrayList; import java.util.LinkedList; impo ...
- 章节七、2-Linked List
package introduction9; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...
- LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧
LTE用户文档 (如有不当的地方,欢迎指正!) 21 Examples Programs(示例程序) 路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...
- java Hotspot 内存管理白皮书(中文翻译)
转自: http://my.oschina.net/u/568779/blog/166891 1引言 一个健壮的 Java™2平台,Standard Edition (J2SE™)拥有一个自动内存管理 ...
- java 内存管理 —— 《Hotspot内存管理白皮书》
说明 要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习.官网所给出的资料总是最权威最知道来龙去脉的.而Java中间,垃圾回收与内存管理是Java中非常重要的一部分.<Hot ...
- java HotSpot 内存管理白皮书
原文见:http://www.open-open.com/lib/view/open1381034220705.html.查阅资料后,对原文做了补充. 文中关于JVM的介绍基于JDK1.6的Hotsp ...
随机推荐
- @vue/cli 构建得项目eslint配置2
使用ESLint+Prettier来统一前端代码风格 加分号还是不加分号?tab还是空格?你还在为代码风格与同事争论得面红耳赤吗? 正文之前,先看个段子放松一下: 去死吧!你这个异教徒! 想起自己刚入 ...
- 使用C# (.NET Core) 实现简单工厂(Simple Factory) 和工厂方法设计模式 (Factory Method Pattern)
本文源自深入浅出设计模式. 只不过我是使用C#/.NET Core实现的例子. 前言 当你看见new这个关键字的时候, 就应该想到它是具体的实现. 这就是一个具体的类, 为了更灵活, 我们应该使用的是 ...
- MyEclipse中JavaMail冲突问题
MyEclipse中的JavaEE5中的mail包中只有接口,而没有实现,所以不能使用 会抛出:java.lang.NoClassDefFoundError: com/sun/mail/util/BE ...
- mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)
1. 查看权限 -- 如果host值不是%, 就要加上host值,下面查看bkpuser用户权限(6个权限, 限本地连接) SHOW GRANTS FOR bkpuser@localhost; -- ...
- Pulsar-Producer实现简介
“Pulsar is a distributed pub-sub messaging platform with a very flexible messaging model and an intu ...
- MongoDB 生产环境笔记
目录 MongoDB 生产环境笔记 一.vm.zone_reclaim_mode 参数 二.添加 swap 分区 三.设置 swappiness 参数 四.内核和文件系统版本 五.禁用 Transpa ...
- ZooKeeper系列(3):znode说明和znode状态
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk 1.znode znode的官方说明:http://zookee ...
- MySQL系列详解八:MySQL多线程复制演示-技术流ken
前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有 ...
- JuiceSSH使用教程: 玩转Linux与Windows
JuiceSSH使用教程: 0.0.环境准备 1.PowerShellServer V6(一般安装这一个就够了,如果不行就考虑把后面两个也安装上) 2.PowerShell-6.0.1(一般电脑已经 ...
- Effective Java——(一)创建和销毁对象
第一条 考虑用静态工厂方法代替构造器 什么叫静态工厂方法,就是通过在类中通过静态方法对对象初始化. 比如说 public class StaticFactory { private String na ...