HashMap的遍历方法

//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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值