A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 铿锵的小黑马 中级黑马   /  2015-10-10 21:38  /  2820 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

80黑马币
请编写程序,完成集合嵌套,并遍历
传智播客
                        jc        基础班
                                        张三                20
                                        李四                22
                        jy        就业班
                                        王五                21
                                        赵六                23


最佳答案

查看完整内容

传智播客 jc 基础班 张三 20 李四 22 jy 就业班 王五 21 赵六 23 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() { re ...

1 个回复

倒序浏览
传智播客
                        jc        基础班
                                        张三                20
                                        李四                22
                        jy        就业班
                                        王五                21
                                        赵六                23

        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 );
                        }
                }
        }
}
5、请编写程序,完成模拟斗地主案例

public class PokerDemo {
        public static void main(String[] args) {
                // 创建一个HashMap集合
                HashMap<Integer, String> hm = new HashMap<Integer, String>();

                // 创建一个ArrayList集合
                ArrayList<Integer> array = new ArrayList<Integer>();

                // 创建花色数组和点数数组
                // 定义一个花色数组
                String[] colors = { "♠", "♥", "♣", "♦" };
                // 定义一个点数数组
                String[] numbers = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
                                "K", "A", "2", };

                // 从0开始往HashMap里面存储编号,并存储对应的牌,同时往ArrayList里面存储编号即可。
                int index = 0;

                for (String number : numbers) {
                        for (String color : colors) {
                                String poker = color.concat(number);
                                hm.put(index, poker);
                                array.add(index);
                                index++;
                        }
                }
                hm.put(index, "小王");
                array.add(index);
                index++;
                hm.put(index, "大王");
                array.add(index);

                // 洗牌(洗的是编号)
                Collections.shuffle(array);

                // 发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
                TreeSet<Integer> sunQuan = new TreeSet<Integer>();
                TreeSet<Integer> caoCao = new TreeSet<Integer>();
                TreeSet<Integer> liuBei = new TreeSet<Integer>();
                TreeSet<Integer> diPai = new TreeSet<Integer>();

                for (int x = 0; x < array.size(); x++) {
                        if (x >= array.size() - 3) {
                                diPai.add(array.get(x));
                        } else if (x % 3 == 0) {
                                sunQuan.add(array.get(x));
                        } else if (x % 3 == 1) {
                                caoCao.add(array.get(x));
                        } else if (x % 3 == 2) {
                                liuBei.add(array.get(x));
                        }
                }

                // 看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
                lookPoker("孙权", sunQuan, hm);
                lookPoker("曹操", caoCao, hm);
                lookPoker("刘备", liuBei, hm);
                lookPoker("底牌", diPai, hm);
        }

        // 写看牌的功能
        public static void lookPoker(String name, TreeSet<Integer> ts,
                        HashMap<Integer, String> hm) {
                System.out.print(name + "的牌是:");
                for (Integer key : ts) {
                        String value = hm.get(key);
                        System.out.print(value + " ");
                }
                System.out.println();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马