Map的六种遍历方式及取出相应类中的属性

Person类

 public class Person {
    private int id;
    private String name;
    private int scal;
    }

main类

    HashMap map = new HashMap();
    map.put(1, new Person(1, "迪迦", 25900));
    map.put(2, new Person(2, "初代", 5900));
    map.put(3, new Person(3, "盖亚", 2900));
    map.put(4, new Person(4, "戴拿", 19000));

    /*第一组  先取出所有的key*//*
    Set set = map.keySet(); //取出所有k  {1,2,3,4}
    *//*1.增for*//*
    for (Object sets : set) {
       //map.get(sets);   按照k值取出value
        Person person = (Person) map.get(sets);//向下转型,取出类里单独的属性
        System.out.println(person.getScal());
    }

    *//*2.迭代器*//*
   Iterator itor=set.iterator();
    while (itor.hasNext()) {
        Object key = itor.next();//先取出所有的k
        //map.get(key);   按照k值取出value
        Person person = (Person) map.get(key);//向下转型,取出类里单独的属性
        System.out.println(person.getScal());

    }*/


    /*  *//*第二组 把所有的value取出*//*
    Collection val = map.values();
    //1.增for
    for (Object vals : val) { //vals就是取出的value值
        Person vals1 = (Person) vals;//向下转型,取出类里单独的属性
        //System.out.println(vals1.getScal());
    }

     //2.迭代器
    Iterator itor =val.iterator();
    while (itor.hasNext()) {
        Object values =  itor.next();//values就是取出的value值
        Person values1 = (Person) values;
        Person next = (Person) itor.next();//或者两句合在一起
        System.out.println(values1.getScal());
    }*/

    /*第三组  通过EntrySet*/
    Set set = map.entrySet();
    //1.增for
    for (Object entrykey : set) { //其中entrykey就是获取了k-v
        Map.Entry entrykey1 = (Map.Entry) entrykey;//使用Map.Entry,将entrykey类型向map转型,可以获取分别的value和key
        entrykey1.getKey();
        entrykey1.getValue();
        Person persons = (Person) entrykey1.getValue();//向下转型,取出类里单独的属性
        // System.out.println(persons.getScal());
    }

    //2.迭代器
    Iterator iterator = set.iterator();
    while (iterator.hasNext()) {
        Object entryset = iterator.next();//其中entryset就是获取了k-v,依旧存在于HashMap$Node节点中
        Map.Entry entryset1 = (Map.Entry) entryset;//使用Map.Entry,将entryset类型向map转型,可以获取分别的value和key
        entryset1.getKey();
        entryset1.getValue();
        Person persons = (Person) entryset1.getValue();//向下转型,取出类里单独的属性
       // System.out.println(persons.getScal());
        System.out.println(entryset1);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值