概述:

1.键值对,key-value,具有映射关系的数据

2.Map的key不允许重复,value可以重复

3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set集合

4.Map里的value类似一个List,只不过索引不再是数字,而是任意类型

5.相关类:HashMap、Hashtable(t就是小写 不是写错了~)、LinkedHashMap、Properties、TreeMap

6.HashMap和Hashtable

1.HashMap(线程不安全)、Hashtable(线程安全),所以不考虑同步问题的时候HashMap性能好些

2.Hashtable不允许null,HashMap key-value 均允许null的存在

7.LinkedHashMap遍历顺序与插入顺序一致,而HashMap不能保证顺序(不是按照添加先后遍历的)

8.Properties用来读取属性文件的类,它继承自Hashtable

9.TreeMap的操作类似TreeSet 请参见《JAVA基础 之 Set》一文,活参看java api,这里不再赘述

package com.cxy.collection;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;/*** @author cxy*/
public class MapTest
{public static void main(String[] args) throws Exception{Map<String,String> m=new HashMap();m.put("姓名", "cxy");m.put("性别", "男");m.put("邮箱", "163@163.com");  //当key不存在于Map的时候put方法可以看作是新增m.put("邮箱", "cxyapi@163.com");  //当key存在于Map的时候put方法可以看作是更新m.put(null, null); //HashMap key-value 均允许null的存在System.out.println(m);System.out.println("============================");System.out.println("m的key中是否包含'姓名'? 答:"+m.containsKey("姓名"));System.out.println("m的value中是否包含'女'? 答:"+m.containsValue("女"));System.out.println("邮箱是:"+m.get("邮箱")); //使用get方法通过key找到valueSystem.out.println("m是否为空?答:"+m.isEmpty());System.out.println("m大小?答:"+m.size());System.out.println("============================");//通过keySet方法取到Map对象的key的Set集合Set<String> ms=m.keySet();System.out.print("m的键(key)有:");for(String one :ms){System.out.print(one+"  ");}System.out.println("");  //保持格式无实际用处System.out.println("============================");m.put("描述", "性别男,爱好女");System.out.println(m);m.remove("描述");  //通过key删除对应的键值对m.remove(null);System.out.println(m);System.out.println("============================");Collection<String> vs= m.values();System.out.print("m的值(value)有:");for(String one :vs){System.out.print(one+"  ");}System.out.println("");  //保持格式无实际用处System.out.println("============================");m.clear(); //清空数据System.out.println(m);System.out.println("============================");Properties p=new Properties();p.setProperty("username", "cxy");p.setProperty("password", "123");p.store(new FileOutputStream("d://cxytest.ini"), "机密");  //将属性写入ini文件,注释是机密//创建另一个Properties对象去加载刚才生成的ini文件Properties p1=new Properties();p1.load(new FileInputStream("d://cxytest.ini"));System.out.println(p1);System.out.println("============================");TreeMap tm = new TreeMap();tm.put("b", "234");tm.put("a", "123");tm.put("c", "456");System.out.println(tm);System.out.println("============================");}
}

相关文章连接:

《JAVA基础 之 Collection》

《JAVA基础 之 List》

《JAVA基础 之 Set》

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正

【CXY】JAVA基础 之 Map相关推荐

  1. Java基础——常用Map的实现细节

    2019独角兽企业重金招聘Python工程师标准>>> Java基础--Map HashMap 数据结构: 数组 + 单链表 transient Entry[] table; // ...

  2. Java基础之map总结

    map的基础理解 话不多说,先上图,可以这样简单的对容器中的map进行分类: 我们在Java开发中,除了最常用的基本数据类型和String对象之外,也会经常用到集合类.集合类中存放的都是对象的引用,而 ...

  3. [Java基础]让Map value自增

    需求:我要在map中判断是否存在key,存在则让key对应的value = value+1,否则设置<key,value=1> 代码实现方式如下: ContainsKey import j ...

  4. 【java基础】Map数据的存进和取出的顺序相同

    Map数据的存进和取出的顺序相同,需要用到linkedHashMap结构,如下所示: import java.util.HashMap; import java.util.LinkedHashMap; ...

  5. java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机;

    文章目录 前言 一.map 遍历方法 二.java正则学习 三.后端传到前端图片三种情况 1. 图片流数据(InputStream) 转 base64,前端展示保存 a. 后端:输入流转base,直接 ...

  6. Java基础之Map集合

    Map集合: 1.Map集合与Collection集合的区别: 1.Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储. 2.Map中的集合1,元素是成对存在的, ...

  7. Java基础之Map类

    Map类 Map 键(key)值(value)对形式 interface Map<K, V> ​ class HashMap<K, V>哈希表结构 ​ class Tree M ...

  8. 【java基础】map的基本使用与字符串中每个字符出现的次数统计

    Map集合概述和特点 Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 元素存取 ...

  9. 回忆Java基础中Map的遍历方法

    转自http://blog.163.com/fw_long/blog/static/51771186201392982041337/ keySet是键的集合,Set里面的类型即key的类型 entry ...

最新文章

  1. Oracle中TO_DATE格式
  2. 剑桥大学的组织架构和行政机构:学院高度自制
  3. java 代码冲突检测_Java中常见的代码冲突
  4. 1816. 截断句子
  5. linux内核同步机制相关收集
  6. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
  7. win7重启mysql服务器_Win7系统下怎么重启iis服务?
  8. PNP三极管限流电路分析
  9. java设计模式-单例模式
  10. php站长统计,如何巧妙去除隐藏“站长统计”文字链接?
  11. 【解决方案】微信公众号文章加载很慢,图片加载不出来,或者weixin.qq.com这个域名都加载不出来
  12. MySql重装出错, Staring the server出错,日志3306 with user root with no password...
  13. 关于数据分析师的4点思考
  14. ShaderToy Matlab OpenGL实现流动Love
  15. html桌面壁纸教程,Photoshop设计简易版的电脑桌面壁纸教程
  16. 大神超短代码实现超牛特效
  17. VS2016 发布项目提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found
  18. 安徽工程大学计算机与信息学院教师,杨丹 - 安徽工程大学 - 计算机与信息学院...
  19. Treer:生成目录结构树
  20. 关于云计算资源调度的一些思考

热门文章

  1. 刀片服务器的机箱显示器,思科 UCS 5100系列刀片服务器机箱
  2. 原生openwrt+极路由4+路由模式光猫+中继光猫wifi+设置ipv6上网
  3. matlab仿真动画,MATLAB图形及三维动画仿真设计.ppt
  4. MATLAB设置起始文件夹
  5. mmdetection特征可视化V2
  6. 令人头大的慢查询分析
  7. Python 处理一对多考勤表
  8. 1、学习笔记-谁说rookie不会数分(入门篇)
  9. L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
  10. Java高级——OutOfMemoryError和StackOverflowError