Problem z pętlą for w tablicy

0

cześć. Otóż mam problem z wykonaniem pętli for dla 3 elementów tablicy. Pętla ma za zadanie porównywać bieżący i kolejny element tablicy 3 elementowej, a przy elemencie ostatni ma porównać element pierwszy. Jednak to co napisałem nie działa :/ jakieś rady?

public class EqualsPunkty {
public static void main(String[] args) {

    Punkt[] punkt = new Punkt[4];
    punkt[0] = new Punkt(3, 45);
    punkt[1] = new Punkt(37, 45);
    punkt[2] = new Punkt(37, 45);

    String porownanie;
    int z;

   for (int i = 0; i < punkt.length; i++) {
        if (i == punkt.length - 1)
            z = 0;
        else z=i+1;
        if (punkt[i].equals(punkt[z]))
            porownanie = " jest rowny ";
        else
            porownanie = " nie jest rowny ";
        System.out.println(punkt[i] + porownanie + punkt[z]);
    }

}

}

class Punkt {
private int x;
private int y;

public Punkt(int x, int y) {
    this.x = x;
    this.y = y;
}

public int getX() {
    return x;
}

public int getY() {
    return y;
}


@Override
public boolean equals(Object o) {
    Punkt p = (Punkt) o;
    if (this.x == p.x && this.y == p.y)
        return true;
    else
        return false;
}

@Override
public String toString() {
    return getX() + " " + getY();
}

}

1

dla 3 elementów tablicy

Punkt[] punkt = new Punkt**[4]**;

2

Trochę można porównanie poprawić:

public boolean equals(Object o) {
        if (!(o instanceof Punkt)) return false;
        Punkt p = (Punkt) o;
        return  this.x == p.x && this.y == p.y;
    }

Nadaj wartość poczatkową dla punkt[3], może zadziała.

0

dzięki ,pomogło

1 użytkowników online, w tym zalogowanych: 0, gości: 1