Problem z „zawiera” metodę skrótu (Java)
Poniższy kod nie daje mi oczekiwanego rezultatu:
public static void main (String[] args) {
Set<Pair> objPair = new LinkedHashSet<Pair>();
objPair.add(new Pair(1, 0));
System.out.println("Does the pair (1, 0) exists already? "+objPair.contains(new Pair(1, 0)));
}
private static class Pair {
private int source;
private int target;
public Pair(int source, int target) {
this.source = source;
this.target = target;
}
}
Rezultatem będzie:
Does the pair (1, 0) exists already? false
Nie mogę zrozumieć, dlaczego to nie działa. A może źle wykorzystuję metodę „zawiera” (lub z niewłaściwych powodów).
Jest jeszcze inny problem, jeśli dodam tę samą wartość dwa razy, zostanie ona zaakceptowana, nawet jako zestaw
objPair.add(new Pair(1, 0));
objPair.add(new Pair(1, 0));
Nie zaakceptuje / nie rozpozna klasy, którą stworzyłem?
Z góry dziękuję.