`

基础——Map类0527

 
阅读更多
package cn.mmc.day16;

import java.util.*;

/*
Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
	1,添加。
		put(K key, V value) 
		putAll(Map<? extends K,? extends V> m) 

	2,删除。
		clear() 
		remove(Object key) 

	3,判断。
		containsValue(Object value) 
		containsKey(Object key) 
		isEmpty() 


	4,获取。
		get(Object key) 
		size() 
		values() 

		entrySet() 
		keySet() 

Map
	|--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
	|--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
	|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。


和Set很像。
其实大家,Set底层就是使用了Map集合。


*/

/*
map集合的两种取出方式:
1,Set<k> keySet:将map中所有的键存入到Set集合。因为set具备迭代器。
	所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
		

	Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。


2,Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,
				而这个关系的数据类型就是:Map.Entry

				Entry其实就是Map中的一个static内部接口。
				为什么要定义在内部呢?
				因为只有有了Map集合,有了键值对,才会有键值的映射关系。
				关系属于Map集合中的一个内部事物。
				而且该事物在直接访问Map集合中的元素。



*/


public class MapTest {
	public static void main(String[] args) 
	{
		Map<String,String> map = new HashMap<String,String>();

		//添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
		//并put方法会返回被覆盖的值。
		System.out.println("put:"+map.put("01","zhangsan1"));
		System.out.println("put:"+map.put("01","wnagwu"));
		map.put("02","zhangsan2");
		map.put("03","zhangsan3");

		System.out.println("containsKey:"+map.containsKey("022"));
		//System.out.println("remove:"+map.remove("02"));

		System.out.println("get:"+map.get("023"));

		map.put("04",null);
		System.out.println("get:"+map.get("04"));
		//可以通过get方法的返回值来判断一个键是否存在。通过返回null来判断。


		
		//获取map集合中所有的值。
		Collection<String> coll = map.values();

		System.out.println(coll);
		System.out.println(map);


	}
}

/*
map扩展知识。

map集合被使用是因为具备映射关系。

"yureban"   Student("01" "zhangsan");

"yureban" Student("02" "lisi");

"jiuyeban" "01" "wangwu";
"jiuyeban" "02" "zhaoliu";

一个学校有多个教室。每一个教室都有名称。


*/

class StudentExtend
{
	private String id;
	private String name;
	StudentExtend(String id,String name)
	{
		this.id = id;
		this.name = name;
	}
	public String toString()
	{
		return id+":::"+name;
	}
}
class  MapDemo3
{

	public static void demo()
	{
		HashMap<String,List<StudentExtend>> czbk = new HashMap<String,List<StudentExtend>>();

		List<StudentExtend> reyu = new ArrayList<StudentExtend>();
		List<StudentExtend> jiuye = new ArrayList<StudentExtend>();

		czbk.put("yureban",reyu);
		czbk.put("jiuyeban",jiuye);

		reyu.add(new StudentExtend("01","zhagnsa"));
		reyu.add(new StudentExtend("04","wangwu"));
		jiuye.add(new StudentExtend("01","zhouqi"));
		jiuye.add(new StudentExtend("02","zhaoli"));


		Iterator<String> it = czbk.keySet().iterator();

		while(it.hasNext())
		{
			String roomName = it.next();
			List<StudentExtend> room = czbk.get(roomName);
			
			System.out.println(roomName);
			getInfos(room);
		}

		

	
	}
	public static void getInfos(List<StudentExtend> list)
	{
		Iterator<StudentExtend> it = list.iterator();
		while(it.hasNext())
		{
			StudentExtend s = it.next();
			System.out.println(s);
		}
	}




	public static void main(String[] args) 
	{
		 demo();
		
		/*
		HashMap<String,List<Student>> czbk = new HashMap<String,List<Student>>();

		HashMap<String,String> yure = new HashMap<String,String>();
		
		HashMap<String,String> jiuye = new HashMap<String,String>();

		czbk.put("yureban",yure);
		czbk.put("jiuyeban",jiuye);


		yure.put("01","zhagnsan");
		yure.put("02","lisi");

		jiuye.put("01","zhaoliu");
		jiuye.put("02","wangwu");



		//遍历czbk集合。获取所有的教室。
		Iterator<String> it = czbk.keySet().iterator();

		while(it.hasNext())
		{
			String roomName = it.next();
			HashMap<String,String> room = czbk.get(roomName);
			
			System.out.println(roomName);
			getStudentInfo(room);
		}

		
//		getStudentInfo(jiuye);
//		getStudentInfo(yure);
*/
		
	}
	public static void getStudentInfo(HashMap<String,String> roomMap)
	{
		Iterator<String> it = roomMap.keySet().iterator();

		while(it.hasNext())
		{
			String id = it.next();
			String name = roomMap.get(id);
			System.out.println(id+":"+name);
		}
	}
}

分享到:
评论

相关推荐

    基础化工行业研究:磷产业报告系列(三)——MAP、DAP呈现差异化发展.pdf

    基础化工行业研究:磷产业报告系列(三)——MAP、DAP呈现差异化发展.pdf

    【后端】java基础(4.4)java中级基础之集合——Map

    我们平常直接叫它“键值(key——value)”结构。 map的实现接口有有不少,比如: HashMap Hashtable TreeMap LinkedHashMap 我们主要来说说最常用的HashMap: 添加元素:put(key,value) HashMap map = new HashMap&...

    DirectX12(D3D12)基础教程(五)——理解和使用捆绑包,加载并使用DDS Cube Map 示例代码资源

    DirectX12(D3D12)基础教程(五)——理解和使用捆绑包,加载并使用DDS Cube Map 示例代码中需要的资源: DDSTextureLoader12.cpp DDSTextureLoader12.h sky_cube.dds sphere.txt 金星.jpg

    地图个人开发笔记和Demo

    —— 1.1 OlMap 基础类 —— 1.2 openlayers 实例化地图 —— 1.3 openlayers地图OSM形式 —— 1.4 openlayers地图XYZ形式 —— 1.5 国家地理信息公共服务平台 天地图 —— 1.6 天地图.四川 —— 1.7 天地图.西藏 ...

    深度学习基础(四)—— 神经网络各层的意义

    在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小 1.1.2 感受野的计算 第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小 计算...

    《新媒体数据挖掘——基于R语言》课件

    34 2.3.4 执行代码并根据实际结果修改 和再次运行 35 2.4 总结与提高 37 2.5 习题 38 第3章 R语言基础——数据 39 3.1 无障碍学习编程语言的两个 诀窍 40 3.1.1 从“哲学”的角度了解编程 语言 40 3.1.2 从“语言学...

    对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法

    云计算的三大技术——Bigtable,Map/Reduce等的研究文章。。。。。。。。。

    统一的IPv4/IPv6翻译与封装过渡技术——IVI/MAP-T/MAP-E

    基于IPv4 协议的互联网是世界上最重要的信息基础设施,但是只有232 个地址空间的IPv4 地址已经分配完毕。为了解决IPv4 地址耗尽问题,目前有两种技术路线:采用IPv4 地址翻译技术(NAT44)或升级到IPv6。NAT44 是...

    基于Python Flask的个人轻博客系统源码 —— Py-Blog简化版

    项目名称:Py-Blog简化版 —— 基于Python Flask的个人轻博客系统 项目简介: Py-Blog简化版是一个基于Python Flask框架开发的个人轻博客系统。该系统由站长在主站(https://hajimi.net)的基础上精简而成,专注于...

    大数据测试——精选推荐.pdf

    优化配置 性能测试基础准备 性能测试基础准备 在⼤数据性能测试时,需要准备相关的基础⼯作,如下: 数据准备,我们需要在不同的节点准备什么量级数据? ⽇志预估,在测试过程中,可能会⽣成多⼤的⽇志,⽇志的可能...

    YiYuan——云大校园APP

    4、成绩显示除了基础的urp上面的各种显示,也可以直接帮你算出加权绩点和加权分数,从此不需要算加权分数的时候手动计算; 实际上,该神器的选课部分只是“更多”功能中的一个小模块。除了urp系统模块之外。该神器...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    android开发入门与实战源码

    本书内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演 示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    javaSE代码实例

    14.1 Object类——所有类的超类 270 14.1.1 toString方法的重写 270 14.1.2 equals方法的意义 271 14.1.3 hashCode方法的意义 272 14.2 重写equals与hashCode方法 273 14.2.1 重写equals方法 273 14.2.2...

    最新力作——ArcGIS Engine开发实例教程 下载

    我相信,无论你的基础怎样,无论你水平如何,认真仔细看完本教程后,你将会对GIS开发不再惧怕!一切都会变得很美好! 目录 第一篇 Map地图开发... 1 1、新建一个GIS项目... 1 2、导入Map文档... 5 3、设置...

    莫烦PYTHON——Python3基础教程 学习心得(4)

    莫烦PYTHON——Python3基础教程 学习心得(4)13 其他13.1 continue & break13.2 try 错误处理13.3 zip lambda map13.4 copy & deepcopy 浅复制 & 深复制13.5 threading 什么是多线程13.6 multiprocessing 什么是多...

    大数据开发成长之路——Java基础(四)

    分为两块:Collection和Map,也称之为集合接口 集合类都存放在java.util包中 Collection Collection分别被List和Set继承 List List被AbstractList实现,然后分为3个子类,ArrayList,LinkedList和VectorList List是...

    《Google Android开发入门与实战》.pdf

    第13章 android综合案例二——基于google map开发个人移动地图 221 13.1 项目ui规划 221 13.2 数据存储实现 222 13.2.1 设计数据库及表结构 222 13.2.2 设计sharepreference 存储 223 13.3 项目实现...

Global site tag (gtag.js) - Google Analytics