LoginSignup
1
1

More than 5 years have passed since last update.

JAVA hashCode() メモ

Posted at

割と難しい
いや、ほんとに難しい..
▪️Hero54.java


public class Hero54 {
    private int hp;
    public String name;

    public boolean equals(Object o) {
        if (o == this)
            return true;
        if (o == null)
            return false;
        if (!(o instanceof Hero54))
            return false;
        Hero54 r = (Hero54) o;
        if (!this.name.trim().equals(r.name.trim())) {
            return false;
        }
        return true;

    }

    public int hashCode() {
        int result = 37;
        result = result * 31 + name.hashCode();
        result = result * 31 + hp;
        return result;

    }

}

▪️Test54.java

import java.util.*;

public class Test54 {
    public static void main(String[] args) {
        Set<Hero54> list = new HashSet<Hero54>();
        Hero54 h1 = new Hero54();
        h1.name = "ミナト";
        list.add(h1);
        System.out.println(h1);
        System.out.println("要素数=" + list.size());
        //これをやることでc2オブジェクトのメンバー変数が全部空っぽになります
        h1 = new Hero54();
        h1.name = "アサカ";
        System.out.println(h1);
        list.remove(h1);
        System.out.println("要素数=" + list.size());
    }

}

▪️実行結果
Hero54@16f4c828
要素数=1
Hero54@16d8bb2d
要素数=1

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1