JAVA循环遍历Map的几种方法

这里说的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(元素类型 元素变量:数组或者集合对象)
{ 循环体 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值