小编ens*_*ens的帖子

具有相同hashCode的等同对象不会映射到HashMap中的相同值

我正在使用自定义类Vec作为键HashMap.

但是Vec具有相同的两个相等对象hashCode()将不会映射到相同的键.

我究竟做错了什么?

import java.util.HashMap;

/**
 * A 2-element float Vector
 */
class Vec {
    public float x;
    public float y;

    public Vec(float x, float y) {
        this.x = x;
        this.y = y;
    }

    public Vec(Vec v) {
        this.x = v.x;
        this.y = v.y;
    }

    public boolean equals(Vec v) {
        System.out.println("equals called");
        return (x == v.x &&
                y == v.y);
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
101
查看次数

标签 统计

java ×1