当前位置: 移动技术网 > IT编程>开发语言>Java > Map中自定义Key

Map中自定义Key

2019年07月23日  | 移动技术网IT编程  | 我要评论

 

在使用map集合的时候可以发现对于key和value的类型实际上都可以由使用者定义,这就意味着可以用自定义的类来进行key类型的设置。
对自定义key类型所在的类中,一定要覆写hashcode()和equals()方法。

 

package com.iterator.demo;

import java.util.hashmap;
import java.util.map;

class person{
    private string name;
    private int age;
    public person(string name, int age) {
        this.name = name;
        this.age = age;
    }
    @override
    public int hashcode() {//覆写hashcode()
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashcode());
        return result;
    }
    @override
    public boolean equals(object obj) {//覆写equals()
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getclass() != obj.getclass())
            return false;
        person other = (person) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
}

public class iteratordemo {
    public static void main(string[] args) {
        map<person, string> map = new hashmap<person, string>();//使用自定义类作为key
        map.put(new person("张三",18), "张三疯");
        map.put(new person("李四",18), "李四光");
        map.put(new person("王五",18), "王五哥");
        system.out.println(map.get(new person("张三", 18)));//通过key找到value
    }
}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网