Witam,
Mam pytanie z javy oraz poniekąd z algorytmiki. Mój problem polega na tym, że potrzebuję rady bardziej doświadczonych programistów Javy. Otóż głównym celem jest najszybsze możliwe tworzenie tablicy dwuwymiarowej a następnie filtrowanie jej wykorzystując kolumny i zwracać pasujące wiersze. Przykład
Załóżmy 1000 wierszy i 5 kolumn: A, B, C, D, E. Wartości to double. Jak najszybciej przefiltrować tablicę przy warunkach typu A > 4 AND B < 11 AND D = WIND.
Problem wydajności jest o tyle istotny, że taka musi być tworzona kilka setek/tysięcy razy przy założeniu, że wierszy jest zazwyczaj dużo (aktualnie największy problem ma nieco ponad 1000 wierszy, ale może się zdarzyć np. 5000) a kolumn całkiem mało (max 30-40). Jak to ugryźć najszybciej?
Rozwiązanie oczywiste to Double[rows][cols] - ale w jaki sposób filtrować taką tablicę, aby wyciągnąć całe wiersze do nowej tablicy? Dynamicznie zmniejszać przeszukiwaną tablicę (w sensie wyciągamy wszystkie, które pasują do A > 4, w kolejnej iteracji mamy już mniej elementów w nowej tablicy i szukamy B < 11)? Czy Double i pętle for to najlepsze rozwiązanie czy może jest jakiś myk na to?
Z góry dzięki za wszystkie pomysły!
Pozdrawiam,
Adam