黑马程序员技术交流社区
标题:
各种遍历双列集合
[打印本页]
作者:
坏坏坏男孩
时间:
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