HashMap概念和常用方法

一、HashMap概念和常用方法

(一)HashMap基本概念
HashMap是Map接口的实现类,是以key-value形式存储数据。虽然线程不安全,但执行效率高。其存储结构是哈希表。
(二)HashMap常用方法
1.put(key, value)
往HashMap中添加元素key-value。
key已经存在时,用新的值value覆盖旧的值。
2.remove(key)
按照指定的键移除元素。
3.get(key)
按照指定的键key得到值value。
4.keySet()
返回HashMap中的所有key。
5.entrySet()
返回HashMap中的所有key-value。
6.containsKey(key)
判断HashMap中是否包含指定key。
7.containsValue(value)
判断HashMap中是否包含指定value。

二、演示代码设计

1.Writer类
设计一个Writer类作为HashMap的key。
Writer类中包含实例属性姓名name和学号id
2.Test类
用于创建HashMap对象,进行添加、移除元素等操作。

三、代码

1.Writer类

public class Writer {
    private String name;
    private int id;

    public Writer() {
    }

    public Writer(String name, int id) {
        this.name = name;
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getId() {
        return id;
    }

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

2.Test类

import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main(String[] args) {
        //0.创建HashMap对象
        HashMap<Writer, String> writers = new HashMap<>();

        //1.添加元素
        Writer w1 = new Writer("欧阳修", 001);
        Writer w2 = new Writer("王安石", 002);
        Writer w3 = new Writer("苏洵", 003);
        Writer w4 = new Writer("苏轼", 004);
        Writer w5 = new Writer("苏辙", 005);
        writers.put(w1, "绵阳");
        writers.put(w2, "抚州");
        writers.put(w3, "眉山");
        writers.put(w4, "眉山");
        writers.put(w5, "眉山");
//        writers.put(w5, "四川");
        writers.put(new Writer("曾巩", 006), "南丰");
        System.out.println("作家的个数是:" + writers.size());
        System.out.println(writers.toString());

        //2.移除元素
        writers.remove(w5);
        System.out.println("删除之后的作家个数:" + writers.size());

        //3.使用keySet()遍历
        System.out.println("******keySet*******");
        for (Writer w:writers.keySet()) {
            System.out.println(w.toString() + ":" + writers.get(w));
        }

        //4.使用entrySet()遍历
        System.out.println("******entrySet******");
        for (Map.Entry<Writer, String> entry: writers.entrySet()) {
            System.out.println(entry.getKey() + entry.getValue());
        }

        //5.判断是否包含指定值
        System.out.println("是否包含指定元素");
        System.out.println(writers.containsKey(w1));
        System.out.println(writers.containsValue("绵阳"));
        System.out.println(writers.containsKey(new Writer("欧阳修", 001))); //注意此处结果为false,因为keySet()里边存储的是各个对象的地址值

    }
}

四、代码运行结果

作家的个数是:6
{com.jzt.emp1.deom02.Writer@77f03bb1=南丰, com.jzt.emp1.deom02.Writer@3ecf72fd=眉山, com.jzt.emp1.deom02.Writer@73035e27=绵阳, com.jzt.emp1.deom02.Writer@64c64813=抚州, com.jzt.emp1.deom02.Writer@21a06946=眉山, com.jzt.emp1.deom02.Writer@483bf400=眉山}
删除之后的作家个数:5
******keySet*******
com.jzt.emp1.deom02.Writer@77f03bb1:南丰
com.jzt.emp1.deom02.Writer@3ecf72fd:眉山
com.jzt.emp1.deom02.Writer@73035e27:绵阳
com.jzt.emp1.deom02.Writer@64c64813:抚州
com.jzt.emp1.deom02.Writer@483bf400:眉山
******entrySet******
com.jzt.emp1.deom02.Writer@77f03bb1南丰
com.jzt.emp1.deom02.Writer@3ecf72fd眉山
com.jzt.emp1.deom02.Writer@73035e27绵阳
com.jzt.emp1.deom02.Writer@64c64813抚州
com.jzt.emp1.deom02.Writer@483bf400眉山
是否包含指定元素
true
true
false

Process finished with exit code 0
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值