黑马程序员技术交流社区

标题: 各种遍历双列集合 [打印本页]

作者: 坏坏坏男孩    时间: 2016-7-21 21:42
标题: 各种遍历双列集合
package com.hei.bean;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class test2 {
/*
* 1.分析以下需求,并用代码实现:
        (1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age)
        (2)定义Map集合,用Student对象作为key,用字符串(此表示表示学生的住址)作为value
        (3)利用四种方式遍历Map集合中的内容,格式:key::value
        //分析:如果要用map来实现该功能就要考虑改用那种子类,Hashmap:的特点是
         *   terrmap的特点:
*/
        public static void main(String[] args) {
                Map<student , String>map = new  HashMap<>();
                map.put(new student("张三", 23), "gsd");
                map.put(new student("李四", 24), "zhenghou");
                map.put(new student("王五", 25), "beijng");
                map.put(new student("张三",24),"sho");
               
               
               
//第一中遍历方式:用迭代器去遍历键值
                Set<student> set= map.keySet();
                Iterator<student> it = set.iterator();
                while (it.hasNext()) {
                        student stu = it.next();
                        String i = map.get(stu);
                        System.out.println(stu+"  "+i);
                }
                System.out.println("----------------------------------------------");
                //第二种用增强for循环来获取值键值
                for (student student : map.keySet()) {
                        System.out.println(student+"  "+map.get(student));
                }
                System.out.println("---------------------------------------------------");
                //第三种是用增强for循环来获取键值对 获取键值对时候,用的是entruset获取,存放在Entry里面.既然是方法就是用类名点调用
                for (Map.Entry<student , String> student : map.entrySet()) {
                        System.out.println(student.getKey()+"    "+student.getValue());
                       
                }
                System.out.println("--------------------------------------------------");
                //第三种是用迭代器遍历键值对,用的是entryset()方法来获取键值对,用entry存放键值对
                Set<Map.Entry<student,String>> set1= map.entrySet();
                Iterator<Map.Entry<student, String>> it2 =set1.iterator();
                while (it2.hasNext()) {
                        Map.Entry<student, String>  stu2=it2.next();//接收it2时候,it2前面放的是什么了类型的值就用什么来接收,放的是键值就用键值的类型来接收,放的是键值对就键值对的类型来接收
                                                                                                                                                                                        //因为放的是i键值对所以就用键值对来接受然后,stu里面放的就是键值对然后从里面去除键值
                        student s = stu2.getKey();
                        String str = stu2.getValue();
                        System.out.println(s+"    "+str);
                       
                        }
               
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2