Új hozzászólás Aktív témák

  • Superhun

    addikt

    válasz DreaD88 #3153 üzenetére

    Definiáld felül a háromszög osztályban az Object ősosztály equals metódusát, és akkor adjon vissza igazat, ha a két háromszög területe megegyezik. Így amikor hozzáadogatod a háromszögeket a HashSet-hez, azok nem kerülnek bele a halmazba, amelyeknek a területe már szerepel.

    Kódban ez vhogy így néz ki (nálam most a háromszög osztályt Triangle-nek hívják):

    @Override
    public boolean equals(Object o) {
    if (o instanceof Triangle) {
    Triangle t = (Triangle) o;
    if (t.getArea() == getArea()) {
    return true;
    }
    }
    return false;
    }

    // A hashCode metódust is illik felüldefiniálni,
    // ha az equals-t felüldefiniálod. Az a lényeg,
    // hogy egyezzen meg annak a két objektumnak a hashkódja,
    // amelyekre az equals igazat ad vissza.
    @Override
    public int hashCode() {
    return (int) getArea(); // ezt lehet máshogy is, de a célnak megfelel
    }

Új hozzászólás Aktív témák