Прежде чем я напишу свою собственную, существует ли модель таблицы с открытым исходным кодом, которая автоматически сворачивает столбцы, содержащие все значения NULL?

Итак, учитывая двумерный массив (на самом деле ArrayList<ArrayList<Object>>) необработанных данных как таковой:

A      B      C     D     E

Bob    null   42    null  null
Sam    null   38    blue  0
Tom    null   35    brown null

Модель таблицы Java, которую я собираюсь написать, автоматически свернет столбец B.

Я пытался найти в Google что-то с открытым исходным кодом, но мне не повезло. Что-то подобное уже существует?

В моем конкретном случае использования у меня есть сотни столбцов и тысячи строк. По крайней мере 30 процентов столбцов (иногда больше) пусты. Однако от одного запроса к другому пустые столбцы могут меняться. Понятно, что пользователь разочарован прокруткой влево и вправо над морем пустых столбцов.

Любые мысли очень ценятся. Я также беспокоюсь о производительности.

-Деннис


person D-Klotz    schedule 11.06.2013    source источник
comment
Каково именно ваше определение tablemodel (база данных, Swing, JSF, постоянство и т. д.)?   -  person home    schedule 11.06.2013
comment
Ах, извините, я должен был поставить больше, чем просто тег java. Это было бы то, что я реализую как абстрактную табличную модель Java. Я обновлю текст.   -  person D-Klotz    schedule 11.06.2013
comment
Возможно, вы могли бы найти модель таблицы, которая поддерживает список используемых значений столбцов (для фильтров таблиц, полей со списком). Это должно легко адаптироваться к полному удалению.   -  person Joop Eggen    schedule 11.06.2013
comment
Я не уверен, что ваш совет применим к этому варианту использования. Спасибо хоть.   -  person D-Klotz    schedule 11.06.2013


Ответы (1)


Я не думаю, что производительность будет проблемой для этого процесса, потому что вы можете остановить итерацию столбца массива, когда будет найден первый ненулевой элемент.

Кроме того, процесс сравнения очень быстрый matrix[i][j]!=null, он не требует сложной обработки.

person fmodos    schedule 11.06.2013
comment
Хороший совет. Я вижу одну проблему с моим вопросом, я сказал двумерный массив, что не совсем точно. Данные содержатся в файле ArrayList<ArrayList<Object>>. - person D-Klotz; 11.06.2013
comment
@ D-Klotz, даже с ArrayList‹ArrayList‹Object›› процесс такой же, если вы используете list.get, поскольку он имеет внутренний массив, а сложность составляет O (1) - person fmodos; 11.06.2013
comment
Спасибо. Я собираюсь немного поэкспериментировать и на основе этого я проголосую / отмечу. - person D-Klotz; 12.06.2013
comment
удачи, любой другой вопрос просто пишите здесь... я буду рад рассмотреть его - person fmodos; 12.06.2013
comment
Успех. Это интересная проблема, и она заняла у меня большую часть выходных, и это в основном потому, что данные и таблицы используют пользовательские заголовки, которые действительно усложняют проблему. У меня есть несколько вопросов для работы, но основная идея работает. Я уменьшаю количество столбцов с 324 до 21 в одном варианте использования, и, немного поработав, я смогу добавить кнопку в пользовательский интерфейс, чтобы они могли мгновенно переключаться между двумя представлениями. - person D-Klotz; 16.06.2013