java Map集合嵌套,value为Map和value为List
2013年12月13日 23:13:34 wuer0520 阅读数:12476
-
import java.util.ArrayList;
-
import java.util.HashMap;
-
import java.util.Iterator;
-
import java.util.List;
-
import java.util.Map;
-
import java.util.Set;
-
public class MapDemo {
-
public static void main(String[] args) {
-
System.out.println("Map集合的值为Map");
-
oneToMap();
-
System.out.println("Map集合的值为List,特别常用!必须会!");
-
oneToList();
-
}
-
/*
-
* 这种是把班级和学生作为映射
-
* 而且又把学号和姓名做了映射
-
*/
-
public static void oneToMap() {
-
Map<String,Map<String,String>> jiSuanJi = new HashMap<String,Map<String,String>>();
-
Map<String,String> ruanJian = new HashMap<String,String>();
-
Map<String,String> wangZhan = new HashMap<String,String>();
-
/*
-
* 千万不要每次都new一个进去,这样就不是原来的集合了
-
* 结果yingyong这个key对应的value集合是null
-
* 遍历Map的时候还会出现空指针错误
-
*/
-
//jiSuanJi.put("yingyong", (Map<String, String>) new HashMap().put("01", "haha"));
-
//jiSuanJi.put("yingyong", (Map<String, String>) new HashMap().put("02", "xixi"));
-
/*
-
* 要使用下面这种方式,先把集合定义好,
-
* 把映射关系设置好,再去给集合添加元素
-
*/
-
jiSuanJi.put("ruanJian", ruanJian);
-
jiSuanJi.put("wangZhan", wangZhan);
-
ruanJian.put("01", "zhangsan");
-
ruanJian.put("02", "lisi");
-
wangZhan.put("01", "zhaoliu");
-
wangZhan.put("02", "zhouqi");
-
Set<String> keySet = jiSuanJi.keySet();
-
for(Iterator<String> it = keySet.iterator();it.hasNext();) {
-
String key = it.next();
-
System.out.println(key);
-
Map<String,String> map = jiSuanJi.get(key);
-
Set<Map.Entry<String, String>> entrySet = map.entrySet();
-
for(Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();it2.hasNext();) {
-
Map.Entry<String, String> me = it2.next();
-
System.out.println(me.getKey() + ".." + me.getValue());
-
}
-
}
-
}
-
/*
-
* 这种把班级和学生做了映射
-
* 学生类中封装了学号和姓名
-
*/
-
public static void oneToList() {
-
Map<String,List<PersonDemo>> jiSuanJi = new HashMap<String,List<PersonDemo>>();
-
List<PersonDemo> ruanJian = new ArrayList<PersonDemo>();
-
List<PersonDemo> wangZhan = new ArrayList<PersonDemo>();
-
jiSuanJi.put("ruanJian", ruanJian);
-
jiSuanJi.put("wangZhan", wangZhan);
-
ruanJian.add(new PersonDemo("01","zhangsan"));
-
ruanJian.add(new PersonDemo("02","lisi"));
-
wangZhan.add(new PersonDemo("01","wangwu"));
-
wangZhan.add(new PersonDemo("02","zhaoliu"));
-
Set<String> keySet = jiSuanJi.keySet();
-
for(Iterator<String> it = keySet.iterator();it.hasNext();){
-
String key = it.next();
-
System.out.println(key);
-
List<PersonDemo> list = jiSuanJi.get(key);
-
for(Iterator<PersonDemo> it2 = list.iterator();it2.hasNext();) {
-
PersonDemo pd = it2.next();
-
System.out.println(pd);
-
}
-
}
-
}
-
}
-
class PersonDemo {
-
private String id;
-
private String name;
-
public PersonDemo(String id, String name) {
-
super();
-
this.id = id;
-
this.name = name;
-
}
-
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;
-
}
-
@Override
-
public String toString() {
-
return this.id + "..." + this.name;
-
}
-
}
来源:CSDN
作者:javaPie
链接:https://blog.csdn.net/evilcry2012/article/details/88642577