集合框架(04)HashMap扩展知识
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扩展知识的更多相关文章
- Java集合框架:HashMap
转载: Java集合框架:HashMap Java集合框架概述 Java集合框架无论是在工作.学习.面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以 ...
- Java集合框架之HashMap浅析
Java集合框架之HashMap浅析 一.HashMap综述: 1.1.HashMap概述 位于java.util包下的HashMap是Java集合框架的重要成员,它在jdk1.8中定义如下: pub ...
- Java 集合框架 04
集合框架·Map 和 Collections集合工具类 Map集合的概述和特点 * A:Map接口概述 * 查看API可知: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映 ...
- (转)Java集合框架:HashMap
来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...
- 阶段01Java基础day18集合框架04
18.01_集合框架(Map集合概述和特点) A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接 ...
- Java 集合框架:HashMap
原文出处:Java8 系列之重新认识 HashMap 摘要 HashMap 是 Java 程序员使用频率最高的用于映射 (键值对) 处理的数据类型.随着 JDK(Java Developmet Kit ...
- java集合框架04——LinkedList和源码分析
上一章学习了ArrayList,并分析了其源码,这一章我们将对LinkedList的具体实现进行详细的学习.依然遵循上一章的步骤,先对LinkedList有个整体的认识,然后学习它的源码,深入剖析Li ...
- Java集合框架(四)-HashMap
1.HashMap特点 存放的元素都是键值对(key-value),key是唯一的,value是可以重复的 存放的元素也不保证添加的顺序,即是无序的 存放的元素的键可以为null,但是只能有一个key ...
- Java基础之集合框架——使用HashMap地图(TryPhoneBook1)
控制台程序. 首先改进Peron类,使Person可以在地图中用作键,进而存储电话簿中的项.必须添加equals()方法并重写默认的hashCode()方法. import java.io.*; pu ...
随机推荐
- parameter localparam define的区别
`define 语法格式 `define A 12 //注意不加:不能忘记" ` " 作用区域 在整个工程中均有效,因为它是可以跨模块的定义 parameter 和 localpa ...
- CentOS下创建和root权限完全相同用户
新建用户 [root@bagon ~]# useradd newroot 修改密码 [root@bagon ~]# passwd newroot 编辑/etc/passwd,找到新建用户那一行 new ...
- linux fork()函数 转载~~~~
转自 :: http://blog.csdn.net/jason314/article/details/5640969 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork ...
- 内存泄漏(memory leak)和内存溢出
1. 什么是内存泄漏(memory leak)? 指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况.内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存 ...
- oracle定时job粗解
其中一篇随笔我写了oracle的存储过程大概的介绍,存储过程除了自身有in的param,来进行程序调用处理之外,还可以通过定时任务的方式调用来执行. 应用场景: 数据同步:有两个显示菜单,“信息编辑” ...
- Java获取当前服务器IP实现
package hope.ipaddress.demo; import java.net.InetAddress; import java.net.NetworkInterface; import j ...
- Linux命令 -文件操作类
声明:本文所涉及到的Linux命令均为最常见的用法,未列举之参数,自行查阅man 1.ls 查看文件与目录 -a 打印全部的文件,包括隐藏文件 -l 列表打印,数据项包括文件属性,大小和权限等 ...
- java链接数据库--Mysql
/************************************************************************* > File Name: Mysql.jav ...
- Spring Boot RabbitMQ 延迟消息实现完整版
概述 曾经去网易面试的时候,面试官问了我一个问题,说 下完订单后,如果用户未支付,需要取消订单,可以怎么做 我当时的回答是,用定时任务扫描DB表即可.面试官不是很满意,提出: 用定时任务无法做到准实时 ...
- python的request抓https的警告问题
1.在使用requests前加入:requests.packages.urllib3.disable_warnings()2.为requests添加verify=False参数,比如:r = requ ...