Java имеет удобный класс BitSet
, который может хранить практически неограниченное количество битов.Когда число битов велико, это представление имеет смысл.Однако, когда число битов относительно мало, это представление будет использовать больше места, чем целое число.
Если количество битов ограничено 32, использование BitSet
будет бесполезным.Имея всего 20 битов, вы потенциально можете создать массив из 2^20
наборов и избежать полного хранения ключей.Но это считается преждевременной оптимизацией.
Лучший способ решить эту проблему - начать с наиболее удобного для вас представления, , которое логически соответствует дизайну вашего приложения .Когда приложение работает, профилируйте его использование памяти, чтобы определить, нужно ли оптимизировать представление ваших битовых наборов;скорее всего, вам не нужно будет ничего с этим делать, по крайней мере, не сразу.