小白学习Java第十七课Map接口以及迭代器

本文深入探讨了Java中Map接口的基本概念与实现类,包括HashMap和TreeMap的特点及使用方法。通过具体示例,展示了如何创建Map实例,进行键值对的增删查改操作,并介绍了迭代器在集合遍历中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map接口
实现Map接口的类用来存储 键-值(key-value) 对。
Map接口的实现类又HashMap和TreeMap等。
Map类中存储的键-值对通过键来标识,所以键值(作为索引)不能重复(若两个对象相互equals,他们的hashCode必须一样),如果重复的话,则会覆盖掉相同的那个键值所对应的内容。
相应的用法如下:

public class TestM {
    public static void main(String[] args) {

        Map<Integer,String> m=new HashMap<>();
        m.put(1,"aa");//存放
        m.put(2,"bb");
        m.put(3,"cc");
        System.out.println(m.get(2));//取出
        System.out.println(m.size());
        System.out.println(m.isEmpty());
        System.out.println(m.containsKey(1));
        System.out.println(m.containsValue("dd"));
        Map<Integer,String> m1=new HashMap<>();
        m1.put(1,"ss");
        m.putAll(m1);
        System.out.println(m);
        //键不能重复
        m.put(2,"ww");
        System.out.println(m);
    }
}

在这里插入图片描述

public class TestM1 {
    public static void main(String[] args) {
        People p1=new People(123,"tom",3000);
        People p2=new People(133,"jerry",3500);
        People p3=new People(143,"tim",4000);
        Map<Integer,People> m=new HashMap<>();
        m.put(123,p1);
        m.put(133,p2);
        m.put(143,p3);
        People pe=m.get(123);
        System.out.println(pe.getName());
        System.out.println(pe);

    }
}

class People{
    private int id;
    private String name;
    private double salary;

    public People (int id,String name,double salary){
        super();
        this.id=id;
        this.name=name;
        this.salary=salary;
    }
    @Override
    public  String toString(){
        return "id:"+id+"name:"+name+"salary"+salary;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public double getSalary() {
        return salary;
    }
}

在这里插入图片描述
迭代器
概述:帮助我们做集合遍历的工具。
作用:java中提供了很多种集合,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些集合中的元素时,可以通过一种通用的获取方式来完成。
用迭代器遍历list,set,map:

public class Testd {
    public static void main(String[] args) {
        test();
        testset();
        testmap();
    }
    public  static void test(){
        List<String> list=new ArrayList<>();
        list.add("sss");
        list.add("www");
        list.add("qqq");
        //使用迭代器遍历
        for (Iterator<String> it = list.iterator(); ((Iterator) it).hasNext();){
            Object t= ((Iterator) it).next();
            System.out.println(t);


        }

        }
    public  static void testset(){
        Set<String> set = new HashSet<>();
        set.add("sss");
        set.add("www");
        set.add("qqq");
        //使用迭代器遍历
        for (Iterator<String> it = set.iterator(); ((Iterator) it).hasNext(); ) {
            Object t = ((Iterator) it).next();
            System.out.println(t);
        }

    }
    public  static void testmap() {
        Map<Integer,String> map = new HashMap<>();
        map.put(10,"sss");
        map.put(20,"www");
        map.put(30,"eee");
        //使用迭代器遍历
        Set<Map.Entry<Integer,String>> ss=map.entrySet();
        for(Iterator<Map.Entry<Integer,String>>it=ss.iterator();it.hasNext();){
            Map.Entry<Integer,String> t=it.next();
            System.out.println(t.getKey()+"--"+t.getValue());
        }
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值