Существует ли структура хеша Java с ключами только и никакими значениями?

df1.take(1).length>0

Метод take возвращает массив строк, поэтому, если размер массива равен нулю, в df нет записей.

36
задан Adeel Ansari 20 January 2009 в 13:58
поделиться

4 ответа

java.util. HashSet? Используя содержит () для Вашего поиска.

14
ответ дан Lawrence Dol 8 August 2019 в 15:55
поделиться

См. также статические методы Collections#newSetFromMap, который создает набор на основе данной реализации Map. Это, например, удобно для создания слабого набора хеша.

2
ответ дан akuhn 8 August 2019 в 15:55
поделиться

Вам нужен Java HashSet.

описание от официальная документация :

Этот класс реализует интерфейс Set, поддержанный хэш-таблицей (на самом деле экземпляр HashMap). Это не делает гарантий относительно итеративного порядка набора; в частности, это не гарантирует, что порядок будет оставаться постоянным со временем. Этот класс разрешает пустой элемент.

Этот класс предлагает постоянную производительность времени для основных операций (добавьте, удалите, содержит и размер), предполагая, что хеш-функция рассеивает элементы правильно среди блоков. Итерация по этому набору требует времени, пропорционального сумме размера экземпляра HashSet (число элементов) плюс "способность" отступающего экземпляра HashMap (количество блоков). Таким образом очень важно не установить начальную способность слишком высоко (или коэффициент загрузки слишком низко), если итеративное выполнение важно.

Примечание, что эта реализация не синхронизируется. Если несколько потоков получают доступ к набору хеша одновременно, и по крайней мере один из потоков изменяет набор, он должен синхронизироваться внешне. Это обычно выполняется путем синхронизации на некотором объекте, который естественно инкапсулирует набор. Если никакой такой объект не существует, набор должен быть "обернут" с помощью метода Collections.synchronizedSet. Это лучше всего сделано во время создания, для предотвращения случайного несинхронизируемого доступа к набору:

Набор s = Collections.synchronizedSet (новый HashSet (...));

итераторы, возвращенные методом итератора этого класса, являются сбоем быстро: если набор изменяется когда-либо после того, как итератор создается, всегда кроме через собственный итератор удаляют метод, Итератор бросает ConcurrentModificationException. Таким образом, перед лицом параллельной модификации, итератор перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.

Примечание, которое не может быть гарантировано поведение сбоя быстро итератора, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Итераторы сбоя быстро бросают ConcurrentModificationException на основе максимальных усилий. Поэтому было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро итераторов должно использоваться только для обнаружения ошибок.

Этот класс является членом Платформы Наборов Java.

74
ответ дан drew 8 August 2019 в 15:55
поделиться

Java Set предназначен для удаления дубликатов и, надеюсь, HashMap должен использовать Java Set для внутреннего управления ключами, так как ключи никогда не могут иметь дубликатов, поэтому Вы должны рассмотреть возможность установки в соответствии с Вашими требованиями.

.
0
ответ дан 27 November 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: