Динамическая таблица / матричная структура данных для Java

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

Кто-либо знает библиотеки, где такая структура данных уже реализована?

5
задан Alexander Temerev 11 February 2010 в 18:45
поделиться

3 ответа

Возможно, вы сможете использовать DefaultTableModel. Он был предназначен для использования с JTable, но нет причин, по которым его нельзя использовать отдельно. Вам нужно будет добавить методы для получения данных для полной строки или столбца.

3
ответ дан 14 December 2019 в 19:12
поделиться

jQuery Tools - у них есть медиаплеер, называемый «flowplayer»:

http://flowplayer.org/

-121-3747409-

c - 144 символа

Minified:

#define A(x) a[b[x%16]]
int c,b[]={4,8,0,1,2,4,6,0,3,4,5,2,8,6,7,2};int
T(int*a){for(c=0;c<16;c+=2)if(A(c)&A(c+1)&A(c+2))return A(c);return 0;}

Оба возвращают число (одно необходимо, а другое нужно заменить пробелом).

Коды массива для восьми способов выиграть в триплетах, начиная с четных позиций и принятых mod 16.

Побитовое и хитрость украдено у Эрика Пи .


Более удобочитаемая форма:

#define A(x) a[b[x%16]]

// Compact coding of the ways to win.
//
// Each possible was starts a position N*2 and runs through N*2+2 all
// taken mod 16
int c,b[]={4,8,0,1,2,4,6,0,3,4,5,2,8,6,7,2};

int T(int*a){
  // Loop over the ways to win
  for(c=0;c<16;c+=2)
    // Test for a win
    if(A(c)&A(c+1)&A(c+2))return A(c);
  return 0;
}

Тестирование каркаса:

#include <stdlib.h>
#include <stdio.h>

int T(int*);

int main(int argc, char**argv){
  int input[9]={0};
  int i, j;
  for (i=1; i<argc; ++i){
    input[i-1] = atoi(argv[i]);
  };
  for (i=0;i<3;++i){
    printf("%1i  %1i  %1i\n",input[3*i+0],input[3*i+1],input[3*i+2]);
  };
  if (i = T(input)){
    printf("%c wins!\n",(i==1)?'X':'O');
  } else {
    printf("No winner.\n");
  }
  return 0;
}
-121--1152319-

Если производительность критична, можно использовать 2D-array и реализовать алгоритм перераспределения (например, удвоение), чтобы он мог расти.

1
ответ дан 14 December 2019 в 19:12
поделиться

Возможно JQL или HSQL DB

0
ответ дан 14 December 2019 в 19:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: