Почему java.util.BitSet не реализует java.util.Set

2

Почему java.util.BitSet не реализует интерфейс java.util.Set<Integer>. Особенно, когда это легко сделать. Также BitSet используется для поддержки, если целое число было "включено или нет", Set также делает то же самое. Итак, BitSet - это Set<Integer>. Ссылаясь на некоторые комментарии, говорящие, что

Теперь рассмотрим методы BitSet. Целью класса является выполнение логических операций над набором битов, которые находятся в определенном порядке.

Я бы все же сказал, что BitSet - это Set<Integer> который также предоставляет дополнительный набор операций.

  • 3
    @ F1sh Я уверен, что я был в питающиеся учреждения, где это было бы спорно.
  • 1
    @djaqeel, ты не сделал комментарий AndyTurner неуместным, но мой. По крайней мере, вторая часть этого. Но теперь вы просто сказали всем, что отредактировали свой вопрос, сделав его снова актуальным, ура! Первая часть моего комментария все еще мой окончательный ответ.
Показать ещё 4 комментария
Теги:
set
bitset

2 ответа

0

java.util.BitSet находится в JDK с версии 1.0, java.util.Set вышла на сцену с JDK 1.2. Поэтому BitSet не может реализовать Set.

Если вам нужна реализация Set<> поддерживаемая BitSet, это, похоже, не сложно реализовать с помощью поддерживающего BitSet.

  • 0
    Кроме того, EnumSet - это реализация Set которая дает следующие преимущества набора битов: (а) компактность в памяти и (б) очень быстрая работа. Представлено внутри как битовые векторы.
  • 1
    Hashtable / Stack / Vector находятся в JDK начиная с версии 1.0, но они все еще могут обновляться для реализации Map и List на 1.2. Поэтому это не веская причина.
0

Поскольку комментарии не делают это достаточно очевидным:

Вы говорите: "BitSet эффективно эффективный набор. BitSet - это набор" - нет, это не так. Set - это коллекция, которая не содержит повторяющихся элементов.

Теперь представьте Set<Bit>. Поскольку бит может быть только 1 или 0, это будет довольно скучный набор максимального размера 2.

Теперь рассмотрим методы BitSet. Целью класса является выполнение логических операций над набором битов, которые находятся в определенном порядке. Это не имеет никакого отношения к Set.

  • 0
    Я думаю, что OP означает Set<Integer> , что прекрасно имеет смысл. Единственным недостатком является то, что он может обрабатывать только целый ряд целых, но не все из них. И эти побитовые or и and логические операции будут соответствовать объединению и пересечению.
  • 0
    @TamasHegedus, где этот вопрос имеет какое-либо отношение к Set<Integer> ? Вопрос ОП довольно прост.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню