黑马程序员技术交流社区
标题:
结合的嵌套
[打印本页]
作者:
秦霄光
时间:
2015-4-24 18:45
标题:
结合的嵌套
集合嵌套这块听的有些纠结,大神求解 啊
自定义两个类实现嵌套?
作者:
优质码农
时间:
2015-4-24 18:45
class Student {
private String id;
private String name;
public Student() {
super();
}
public Student(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;
}
}
HashMap嵌套HashMap
public class HashMapTest {
public static void main(String[] args) {
// 1: 创建基础班集合 HashMap<String, String>
HashMap<String, String> base = new HashMap<String, String>();
// 2: 向基础班集合添加元素
base.put("01", "陈如水");
base.put("02", "左帅");
//3: 创建就业班集合 HashMap<String, String>
HashMap<String, String> job = new HashMap<String, String>();
//4: 向就业班集合添加元素
job.put("01", "李天成");
job.put("02", "许伟");
//5: 创建一个czbk集合 HashMap< String, HashMap<String, String> >
HashMap<String, HashMap<String, String>> czbk = new HashMap<String, HashMap<String, String>>();
//6: 向czbk集合中 添加班级元素
czbk.put("基础班", base);
czbk.put("就业班", job);
//7: 遍历
//遍历学校集合, 得到每一个班级
Set<Entry<String, HashMap<String, String>>> classes = czbk.entrySet();
// 得到每一个班级
for (Entry<String, HashMap<String, String>> clazz : classes) {
//获取班级名称
String name = clazz.getKey();
System.out.println(name);
//获取班级元素
HashMap<String, String> students = clazz.getValue();
//获取到每一个学生信息
Set<Entry<String, String>> studentSet = students.entrySet();
for (Entry<String, String> student : studentSet) {
//获取学生的学号
String id = student.getKey();
//获取学生的姓名
String n = student.getValue();
System.out.println("\t"+id+"..."+n);
}
}
}
}
HashMap嵌套ArrayList
public class HashMapTest {
public static void main(String[] args) {
//1: 创建基础班集合 ArrayList<Student>
ArrayList<Student> base = new ArrayList<Student>();
//2: 向基础班集合添加元素
base.add(new Student("01","陈如水"));
base.add(new Student("02","左帅"));
//3: 创建就业班集合 ArrayList<Student>
ArrayList<Student> job = new ArrayList<Student>();
//4: 向就业班集合添加元素
job.add(new Student("01","李天成"));
job.add(new Student("02","许伟"));
//5: 创建czbk学校集合 HashMap<String, ArrayList<Student> >
HashMap<String, ArrayList<Student>> czbk = new HashMap<String, ArrayList<Student>>();
//6: 把班级添加到 学校集合中
czbk.put("基础班", base);
czbk.put("就业班", job);
//7: 遍历
//获取到所有班级的名称
Set<String> classNames = czbk.keySet();
//获取到每一个班级名称
for (String className : classNames) {
System.out.println(className);
//通过班级名称,获取到班级学生信息
ArrayList<Student> Students = czbk.get(className);
//获取到每一个学生信息
for(Student s : Students){
System.out.println("\t"+s.getId()+"..."+s.getName());
}
}
}
}
ArrayList嵌套HashMap
public class ArrayListTest {
public static void main(String[] args) {
// 1: 创建基础班集合 HashMap<String, String>
HashMap<String, String> base = new HashMap<String, String>();
// 2: 向基础班集合添加元素
base.put("01", "陈如水");
base.put("02", "左帅");
//3: 创建就业班集合 HashMap<String, String>
HashMap<String, String> job = new HashMap<String, String>();
//4: 向就业班集合添加元素
job.put("01", "李天成");
job.put("02", "许伟");
//5:创建一个czbk集合 ArrayList<HashMap<String, String> >
ArrayList<HashMap<String, String> > czbk = new ArrayList<HashMap<String, String>>();
//6: 向czbk集合中 添加班级元素
czbk.add(base);
czbk.add(job);
//7: 遍历(难点)
//获取到每一个班级
for (HashMap<String, String> clazz : czbk) {
//获取到班级的所有学生
Set<Entry<String, String>> students = clazz.entrySet();
//获取到每一个学生
for (Entry<String, String> student : students) {
String id = student.getKey();
String name = student.getValue();
System.out.println(id +"--"+name );
}
}
}
}
作者:
过路人
时间:
2015-4-24 21:28
楼上的哥们也太犀利:funk:,
作者:
43453186@qq.com
时间:
2015-4-26 23:32
额,这代码也不分行,头晕啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2