Hej,
Mam taką oto prostą klasę Punkt:
public class Point {
public int X;
public int Y;
public boolean equals(Point otherPoint) {
return ((X == otherPoint.X) && (Y == otherPoint.Y));
}
}
Jak zrobić, aby kolekcja set widząc, że chcę włożyć punkt, ktory już istnieje w zbiorze, nie pozwalała na to? Jak wyżej, próbowałem z equals, ale coś nie działa. Bo wyniki mam i tak:
X = 1
Y = 1
X = 1
Y = 1
Albo, czego używa set w celu porównania obiektów, domyślam się, że raczej to powinno być equals.
Czyli:
Set<Point> unique_items = new HashSet<Point>();
Point p1 = new Point();
p1.X = 1;
p1.Y = 1;
Point p2 = new Point();
p2.X = 1;
p2.Y = 1;
unique_items.add(p1);
unique_items.add(p2);
Iterator<Point> it = unique_items.iterator();
while( it.hasNext() ) {
Point p = it.next();
System.out.println("\nX = " + p.X);
System.out.println("Y = " + p.Y);
}
Dzięki za pomoc