2013-10-24 3 views
0

Предположим, что у нас есть хэш-набор объектов класса Node которых класс Node определяется следующим образом:Проверьте хэш-набор содержит элементы с определенным значением хэш

class Node{ 
    int id; 
    public int hash(){ 
    return id; 
    } 
} 

Мы хотим, чтобы проверить, хэш-набор содержит элемент с id n, как мы можем это сделать без наличия объекта?

+0

Вы пробовали что-нибудь? Это работает? –

+0

На самом деле причина, по которой я спрашиваю, в том, что я ничего не нашел. –

ответ

1

Вы не можете использовать хеш-код, это внутренняя реализация класса HashSet, но интерфейс Set не говорит о хэш-кодах.

Я предлагаю вам использовать альтернативную структуру, такую ​​как Карта, где вы храните объекты по идентификатору, а затем вы можете проверить, присутствует ли какой-либо идентификатор.

1
boolean contains = mySet.contains(new Node(n)); 
+0

Это работает, но это дорого –

+0

. Я зависим от того, что сделано в конструкторе (см., Например, http://programmers.stackexchange.com/questions/149563/should-we-avoid-object-creation-in-java) – agad

Смежные вопросы