【CXY】JAVA基础 之 Map
概述:
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相关推荐
- Java基础——常用Map的实现细节
2019独角兽企业重金招聘Python工程师标准>>> Java基础--Map HashMap 数据结构: 数组 + 单链表 transient Entry[] table; // ...
- Java基础之map总结
map的基础理解 话不多说,先上图,可以这样简单的对容器中的map进行分类: 我们在Java开发中,除了最常用的基本数据类型和String对象之外,也会经常用到集合类.集合类中存放的都是对象的引用,而 ...
- [Java基础]让Map value自增
需求:我要在map中判断是否存在key,存在则让key对应的value = value+1,否则设置<key,value=1> 代码实现方式如下: ContainsKey import j ...
- 【java基础】Map数据的存进和取出的顺序相同
Map数据的存进和取出的顺序相同,需要用到linkedHashMap结构,如下所示: import java.util.HashMap; import java.util.LinkedHashMap; ...
- java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机;
文章目录 前言 一.map 遍历方法 二.java正则学习 三.后端传到前端图片三种情况 1. 图片流数据(InputStream) 转 base64,前端展示保存 a. 后端:输入流转base,直接 ...
- Java基础之Map集合
Map集合: 1.Map集合与Collection集合的区别: 1.Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储. 2.Map中的集合1,元素是成对存在的, ...
- Java基础之Map类
Map类 Map 键(key)值(value)对形式 interface Map<K, V> class HashMap<K, V>哈希表结构 class Tree M ...
- 【java基础】map的基本使用与字符串中每个字符出现的次数统计
Map集合概述和特点 Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 元素存取 ...
- 回忆Java基础中Map的遍历方法
转自http://blog.163.com/fw_long/blog/static/51771186201392982041337/ keySet是键的集合,Set里面的类型即key的类型 entry ...
最新文章
- Oracle中TO_DATE格式
- 剑桥大学的组织架构和行政机构:学院高度自制
- java 代码冲突检测_Java中常见的代码冲突
- 1816. 截断句子
- linux内核同步机制相关收集
- wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
- win7重启mysql服务器_Win7系统下怎么重启iis服务?
- PNP三极管限流电路分析
- java设计模式-单例模式
- php站长统计,如何巧妙去除隐藏“站长统计”文字链接?
- 【解决方案】微信公众号文章加载很慢,图片加载不出来,或者weixin.qq.com这个域名都加载不出来
- MySql重装出错, Staring the server出错,日志3306 with user root with no password...
- 关于数据分析师的4点思考
- ShaderToy Matlab OpenGL实现流动Love
- html桌面壁纸教程,Photoshop设计简易版的电脑桌面壁纸教程
- 大神超短代码实现超牛特效
- VS2016 发布项目提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found
- 安徽工程大学计算机与信息学院教师,杨丹 - 安徽工程大学 - 计算机与信息学院...
- Treer:生成目录结构树
- 关于云计算资源调度的一些思考
热门文章
- 刀片服务器的机箱显示器,思科 UCS 5100系列刀片服务器机箱
- 原生openwrt+极路由4+路由模式光猫+中继光猫wifi+设置ipv6上网
- matlab仿真动画,MATLAB图形及三维动画仿真设计.ppt
- MATLAB设置起始文件夹
- mmdetection特征可视化V2
- 令人头大的慢查询分析
- Python 处理一对多考勤表
- 1、学习笔记-谁说rookie不会数分(入门篇)
- L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
- Java高级——OutOfMemoryError和StackOverflowError