(2)Map遍历的两种方式
方式1:通过遍历键集来获取值
方式2:通过获取键值对的集合来获取键和值
/*
* 标准学生类
*/
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 重写toString()方法,让他返回姓名年龄
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
/*
* 测试类
*/
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map<Integer, Student> map=new HashMap<Integer, Student>();
//创建元素对象
Student s1=new Student("祝英台",18);
Student s2=new Student("小龙女",15);
Student s3=new Student("朱丽叶",25);
//存储元素(学号——学生)
map.put(10000, s1);
map.put(10086, s2);
map.put(10010, s3);
//遍历Map集合
//方式1:获取键的集合,用键找值
Set<Integer> keys=map.keySet();//获取所有键的集合
for (Integer s : keys) {//遍历键集
//Object get(Object key)通过键获取值
Student value=map.get(s);
//输出键值对
System.out.println("学号:"+s+",学生:"+value);
}
//如果key不存在,返回的是null,不报错
System.out.println("key不存在:"+map.get(1));
System.out.println("--------------------");
//方式2:通过遍历键值对集合进行遍历
//获取键值对对象的集合
//Map.Entry<K,V>是一个接口,提供getKey()、getValue()方法用于
获取键、值
Set<Map.Entry<Integer, Student>> set=map.entrySet();
//遍历集合
for (Map.Entry<Integer, Student> entry : set) {
Integer key=entry.getKey();
Student value=entry.getValue();
System.out.println("学号:"+key+",学生:"+value);
|
|