这里说的Map是Map的泛型遍历情况,下面会从个人的编码加以分析。
先插入企鹅类
public class Penguin {
// 名字
private String name;
// 年龄
private int 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;
}
public Penguin(String name, int age) {
this.name = name;
this.age = age;
}
}
接着插入测试代码:
public static void main(String[] args) {
Penguin p1 = new Penguin("Q1", 2);
Penguin p2 = new Penguin("Q2", 3);
Penguin p3 = new Penguin("Q3", 4);
// Map的泛型
Map<String, Penguin> pgn = new HashMap<String, Penguin>();
pgn.put(p1.getName(), p1);
pgn.put(p2.getName(), p2);
pgn.put(p3.getName(), p3);
//使用Iterator while遍历
System.out.println("使用Iterator遍历");
Set<String> keys = pgn.keySet();
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key=it.next();
Penguin p=pgn.get(key);
System.out.println(key+" "+p.getAge());
}
}
改进这里的while循环代码:
Iterator<Map.Entry<String, Penguin>> iterator=pgn.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Penguin> entry=iterator.next();
System.out.println(entry.getKey()+" "+entry.getValue().getAge());
}
下面用增强for循环
//foreach循环遍历
for (String key : keys) {
Penguin p=pgn.get(key);
System.out.println(p.getName()+" "+p.getAge());
}
System.out.println();
//foreach另外一种循环
for (Penguin v :pgn.values()) {
System.out.println(v.getName()+" "+v.getAge());
}
再次修改foreach
for (Map.Entry<String, Penguin>entry : pgn.entrySet()) {
System.out.println(entry.getKey()+" "+entry.getValue().getAge());
}
再次提一下增强for语法
for(元素类型 元素变量:数组或者集合对象)
{ 循环体 }