Преди да напиша своя собствена, има ли табличен модел с отворен код, който автоматично свива колони, които съдържат всички нули?

И така, даден двуизмерен масив (всъщност 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