java中map集合嵌套形式簡單示例


定義了一個學生類,封裝了id和name屬性,提供一個全參構造器,並複寫toSting方法
class Student{
private String id;
private String name;

Student(String id,String name){
this.id=id;
this.name=name;
}

public String toString(){
return id+"::"+name;
}
}
Map<key,value> map集合是以鍵值對存儲的,其中的鍵值也可以是集合,這樣就出現了集合嵌套形式如:Map<String,Map<String,String>>;Map<String,List<Student>>
需求是傳智播客的學校有就業班和預熱班,每個類型的班級裏有自己的學員的學號和姓名,要求進行遍歷輸出班級類型和學員信息:
class MapDemo {
public static void main(String[] args) {
Map<String,List<Student>> czbk=new HashMap<String,List<Student>>();//定義一個map集合,其中鍵是String類型,值是List集合(list集合中存儲的是學生類型的元素)
List<Student> yureban=new ArrayList<Student>();//定義預熱班集合
List<Student> jiuyeban=new ArrayList<Student>();//定義就業辦集合
//向czbk  Map集合中存入元素
czbk.put("yureban", yureban);
czbk.put("jiuyeban", jiuyeban);
//分別向預熱班和就業班中存入元素
yureban.add(new Student("01","wuji"));
yureban.add(new Student("02","zhangmin"));
jiuyeban.add(new Student("01","damo"));
jiuyeban.add(new Student("02","zushi"));
獲取czbk中的鍵值,通過第一次循環獲取鍵所對應的班級集合,在通過遍歷班級集合來獲取集合中的學生信息,通過兩次while循環輸入班級類型和學生信息
Iterator<String> it=czbk.keySet().iterator();
while(it.hasNext()){
String roomName=it.next();
List<Student> banji=czbk.get(roomName);
Iterator<Student> iter=banji.iterator();
while(iter.hasNext()){
Student stu=iter.next();
Sop.sop(roomName+"  "+stu.toString());
}
}


/*
//該處代碼與上面的功能一致,是在map集合中再嵌套一個map集合,並通過兩次while循環獲取班級類型和學生信息
Map<String,Map<String,String>> map=new HashMap<String,Map<String,String>>();
Map<String,String> yure=new HashMap<String,String>();
Map<String,String> jiuye=new HashMap<String,String>();
map.put("yureban", yure);
map.put("jiuyeban", jiuye);
yure.put("01", "zhangsan");
yure.put("02", "lisi");
jiuye.put("01"," wangwu");
jiuye.put("02", "zhaoliu");

Iterator<String> it=map.keySet().iterator();
while(it.hasNext()){
String nameRoom=it.next();
Map<String,String> nameMap=map.get(nameRoom);
Iterator<Map.Entry<String, String>> iter=nameMap.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<String, String> me=iter.next();
String id=me.getKey();
String name=me.getValue();
Sop.sop(nameRoom+"id: "+id+" name:"+name);
}
}
*/
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章