Задумывались ли вы об использовании гибридного списка / цепочки битов?
Используйте свой список для хранения одного измерения ваших битов. Каждый элемент списка будет содержать цепочку битов фиксированной длины. Вы должны использовать свой список, чтобы сфокусировать поиск на интересующей цепочке, а затем использовать цепочку для поиска / изменения интересующей вас биты.
Список должен позволять наиболее эффективный вызов битовых строк, битовые строки должны позволять упаковывать все ваши данные максимально эффективно, а гибридный список / битовая строка должны обеспечивать компромисс между скоростью (немного более медленный доступ к битовой строке в список) и хранилище (битовые данные плюс накладные расходы по списку.)