Comment écrire la méthode hashCode pour une classe en particulier?

Je suis en train de générer un hashCode() la méthode de ma classe mais je ne suis pas aller nulle part avec elle. Je vous serais reconnaissant de toute aide. J'ai implémenté la méthode equals (), qui se présente comme suit, et voudrais aussi savoir si j'ai besoin de mettre en œuvre compareTo() de la méthode. J'ai importés de java.lang.Le caractère à utiliser de caractères.hashCode (), mais il ne semble pas fonctionner.

private class Coord{
    private char row;
    private char col;
    public Coord(char x, char y){
        row = x;
        col = y;
    }
    public Coord(){};

    public char getX(){
        return row;
    }

    public char getY(){
        return col;
    }

    public boolean equals(Object copy){
        if(copy == null){
            throw new NullPointerException("Object entered is empty");
        }
        else if(copy.getClass()!=this.getClass()){
            throw new IllegalArgumentException("Object entered is not Coord");
        }
        else{
            Coord copy2 = (Coord)copy;
            if(copy2.row==this.row && copy2.col==this.col)
                return true;
            else
                return false;
        }
    }

}

Merci d'avance...

La comparTo() méthode qui me donne de java.lang.Comparable erreur de casting..

public int compareTo(Object copy){
        if(copy==null){
            throw new NullPointerException("Object entered is empty");
        }
        else if(copy.getClass()!=this.getClass()){
            throw new IllegalArgumentException("Object entered is not Coord");
        }
        else{
            Coord copy2 = (Coord)copy;
            if(copy2.row==this.row && copy2.col==this.col){
                return 0;
            }
            else if(copy2.col < this.col){
                return -1;
            }
            else{
                return 1;
            }
        }
    }

merci...

Je pense que Prépondérant equals et hashCode en Java va vous aider.

OriginalL'auteur A Gore | 2013-05-04