Map扩展知识

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

“bigclass”: “001”, ”zhangsan”

“002”, ”lisi”

“smallclass” : ”001”, “wangwu”

:”002”, “zhaoliu”

一个学校有多个班级,每个班级都有自己的名字

代码示例:

package CollectionTest;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapDemo4 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub //解决映射中的一对多问题。
Map<String,String> one = new HashMap<String,String>();
one.put("001", "zhangsan");
one.put("002", "lisi"); Map<String,String> two = new HashMap<String,String>();
two.put("001", "wangwu");
two.put("002", "zhaoliu"); HashMap<String,HashMap<String,String>> school = new HashMap<String,HashMap<String,String>>();
school.put("bigclass", (HashMap<String, String>) one);
school.put("smallclass", (HashMap<String, String>) two); //遍历school,获取所有班级(通过KeySet方法获得是所有键的String类型)
Iterator<String> it= school.keySet().iterator();
while(it.hasNext()){
String roomName = it.next();
System.out.println(roomName);
//通过school的get方法,里面传入的是键,获得one,two
Map<String,String> room = school.get(roomName);
getInfo(room); } }
public static void getInfo(Map<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);
} } }

第二种方法:

package CollectionTest;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
class Student3{
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
Student3(String id,String name){
this.id=id;
this.name=name;
}
public String toString(){
return id+","+name;
}
} public class HashMapDemo4 { /**
* @param args
*/
public static void demo(){
HashMap<String,List<Student3>> school = new HashMap<String,List<Student3>>(); List<Student3> big = new ArrayList<Student3>();
List<Student3> small= new ArrayList<Student3>();
school.put("big", big);
school.put("small", small);
big.add(new Student3("001","zhangsan"));
big.add(new Student3("002","lisi"));
small.add(new Student3("001","wangwu"));
small.add(new Student3("002","zhaoliu"));
Iterator<String> it = school.keySet().iterator();
while(it.hasNext()){
String roomName = it.next();
List<Student3> stu = school.get(roomName);
System.out.println(roomName);
getInfors(stu); } }
public static void getInfors(List<Student3> list){
Iterator<Student3> it2 = list.iterator();
while(it2.hasNext()){
Student3 s = it2.next();
System.out.println(s);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub
demo();
}
}

集合框架(04)HashMap扩展知识的更多相关文章

  1. Java集合框架:HashMap

    转载: Java集合框架:HashMap Java集合框架概述   Java集合框架无论是在工作.学习.面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以 ...

  2. Java集合框架之HashMap浅析

    Java集合框架之HashMap浅析 一.HashMap综述: 1.1.HashMap概述 位于java.util包下的HashMap是Java集合框架的重要成员,它在jdk1.8中定义如下: pub ...

  3. Java 集合框架 04

    集合框架·Map 和 Collections集合工具类 Map集合的概述和特点 * A:Map接口概述 * 查看API可知: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映 ...

  4. (转)Java集合框架:HashMap

    来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...

  5. 阶段01Java基础day18集合框架04

    18.01_集合框架(Map集合概述和特点) A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接 ...

  6. Java 集合框架:HashMap

    原文出处:Java8 系列之重新认识 HashMap 摘要 HashMap 是 Java 程序员使用频率最高的用于映射 (键值对) 处理的数据类型.随着 JDK(Java Developmet Kit ...

  7. java集合框架04——LinkedList和源码分析

    上一章学习了ArrayList,并分析了其源码,这一章我们将对LinkedList的具体实现进行详细的学习.依然遵循上一章的步骤,先对LinkedList有个整体的认识,然后学习它的源码,深入剖析Li ...

  8. Java集合框架(四)-HashMap

    1.HashMap特点 存放的元素都是键值对(key-value),key是唯一的,value是可以重复的 存放的元素也不保证添加的顺序,即是无序的 存放的元素的键可以为null,但是只能有一个key ...

  9. Java基础之集合框架——使用HashMap地图(TryPhoneBook1)

    控制台程序. 首先改进Peron类,使Person可以在地图中用作键,进而存储电话簿中的项.必须添加equals()方法并重写默认的hashCode()方法. import java.io.*; pu ...

随机推荐

  1. Python全栈工程师(数值类型、运算符)

    ParisGabriel       Python 入门基础     python的应用领域: 1.系统运维 2.网络编程(如:网络爬虫,搜索引擎,服务器编程) 3.科学计算 4.航空领域(如:卫星, ...

  2. springboot11 JPA

    一.JPA 1. JPA 介绍 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到 ...

  3. java中newInstance和new(转)

    在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法.通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态 ...

  4. jsp页面中引入java类

    <%@ page import="java.util.*" %>

  5. 删除maven仓库中的lastUpdate文件

    使用idea时导入hibernate 5.1.0的jar包,然后发现本地仓库中找不到该版本的jar 然后手贱 alt+enter 发现提示 update maven indices 然后以为更新就会好 ...

  6. .Net MVC断点进不去

    .Net MVC断点进不去 1.httpget  httppost 2.启动项设为UI 3.基于页面没错误的情况下

  7. 用jQuery实现旋转木马效果(带前后按钮和索引按钮)

    项目中要用到旋转木马效果,一共5张图片轮播,并且点击对应的索引按钮能切换到对应的图片.本效果实在jquery.carousel.js插件的基础上做了一些改进,以实现上述需求. 效果图如下: 代码: H ...

  8. CLion 的 Debug 模式是怎么回事

    我对这个问题产生兴趣的起因是 Codeoforces Avito Challenges 2018 的 E 题,我想到了正解,但写得太慢,最后一刻才提交.有个地方写错,结果是 Runtime error ...

  9. 开头什么的肯定要自我介绍然后把它扔到置顶咯>_<~

    大家嚎,我是NanoApe~ 现在高一,是个OIer.音游狗和一个爱着二次元的萌汉子妹子,欢迎前来勾搭>_<~ 最近就是要冲省队啦~~~~加油! 扣扣号:879006461 Weibo:伪 ...

  10. if else以及大于、小于、等于逻辑表达式

    大多数情况下,可以使用测试命令来对条件进行测试.比如可以比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试.注意这里的空格很重要.要确保方括号的空格. if . ...