//1:创建Student类:
package cn.dqlai.day10.demo04;
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;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//2:创建Testo4测试类
package cn.dqlai.day10.demo04;
import java.util.*;
public class Test04 {
public static void main(String[] args) {
HashMap<Integer,Student> map = new HashMap<>();
Student[] arr = {
new Student("dqlai",22),
new Student("wl",22),
new Student("zy",23),
};
for(int i=0;i<arr.length;i++){
map.put(i,arr[i]);
}
//1:
System.out.println("第一种遍历方法:");
Set<Integer> set = map.keySet();
for(Integer i:set){
System.out.println('['+String.valueOf(i)+':'+map.get(i)+']');
}
System.out.println();
//2:
System.out.println("第二种遍历方法:");
Collection<Student> coll = map.values();
Iterator<Student> iter = coll.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
System.out.println();
//3:
System.out.println("第三种遍历方法:");
Set<Map.Entry<Integer,Student>> set2 = map.entrySet();//创建一个Set集合,泛型为<Map.Entry<Integer,Student>(interface引用数据类型)>接收k-vSet视图
Iterator<Map.Entry<Integer,Student>> iter2 = set2.iterator();//对Set集合的遍历使用迭代器Iterator
while(iter2.hasNext()){
Map.Entry<Integer,Student> t = iter2.next();//t接收iter2.next返回的每一对k---v
System.out.println('['+String.valueOf(t.getKey())+':'+t.getValue()+']');
}
System.out.println();
//4:
System.out.println("第四种遍历方法:");
for(Map.Entry<Integer,Student> t:map.entrySet()){
System.out.println('['+String.valueOf(+t.getKey())+':'+t.getValue()+']');
}
}
}
//总结:
接口作为引用数据类型也可以作为泛型使用,如 Set<Map.Entry<Integer,Student>> set2 = map.entrySet();