Проблема с «содержащим» методом хэширования (Java)

Следующий код не дает мне результат, который яожидаю:

public static void main (String[] args) {

    Set objPair = new LinkedHashSet();
    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;
    }        
}

Результатом будет:

Does the pair (1, 0) exists already? false

Я могу'не понимаю, почему этоне работает. Или, может быть, ям с помощьюсодержит" неправильный метод (или по неправильным причинам).

Существует также другая проблема, если я добавлю одно и то же значение дважды, оно будет принято, даже если оно является набором

objPair.add(new Pair(1, 0));
objPair.add(new Pair(1, 0));

Это победилоне могу принять / распознать класс Pair I 'мы создали?

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос