Как мне удалить пустой массив объектов? - PullRequest
1 голос
/ 22 мая 2010

я определяю объект:

tempRes = new Object[100000][7];

Теперь после этого я заполняю его до 100 строк, например. Теперь, как удалить каждый объект после этого (из tempRes [100] тоже tempRes [10000]).

Мне нужно это для JTable.

Ответы [ 4 ]

3 голосов
/ 23 мая 2010

Честно говоря, не используйте массив, если вы не знаете, сколько элементов вам нужно будет добавить. Массив зарезервирует память для заданного размера. Используйте List или Vector, добавьте свои элементы и позже конвертируйте их в массив. Или не конвертируйте его вообще, если ваше использование (например, JTable) может работать с векторами.

Кроме того, в случае, если у вас есть данные, хранящиеся в другом месте в памяти, и список огромен, вы реализуете свой собственный подкласс TableModel (который вызывается динамически, когда вы прокручиваете строки, и вам придется строить их по запросу ) гораздо эффективнее, чем сначала выводить все строки в массив.

Пример списка:

    List<Object[]> tempRows = new ArrayList<Object[]>();
    for (int i = 0; i < 100; i++) {
        Object[] row = new Object[] {"This", "Is", "Just", "Some", "Example", "Data", "Here"};
        tempRows.add(row);
    }
    Object[][] tempRes = (Object[][]) tempRows.toArray(new Object[tempRows.size()][]);
1 голос
/ 23 мая 2010

Вам нужна модель таблицы подкачки.http://www.java2s.com/Code/Java/Swing-JFC/AquickapplicationthatdemonstratesthePagingModel.htm. При этом данные извлекаются из базы данных динамически в зависимости от того, куда вы прокручиваетесь.Свяжите его с базой данных SQL, используя запросы SQL с операторами LIMIT.Код будет очень похож.

1 голос
/ 23 мая 2010

Вкл. java.util.Arrays

У него есть copyOf метод, который вы можете использовать, чтобы взять «головную» часть массива.

String[] names = { "Alice", "Bob", "Carol", "Dean" };
names = Arrays.copyOf(names, 2);
System.out.println(Arrays.toString(names));
// prints "[Alice, Bob]"

Вкл. List над массивами

Effective Java 2nd Edition, Item 25: Предпочитать списки массивам

О разделении модели / вида

То, что JTable использует массивы для просмотра, не означает, что вам также следует моделировать ваши данные. Узнайте, как работают архитектуры модель-представление-контроллер.

0 голосов
/ 23 мая 2010

Вы не можете изменить размеры массивов Java. Единственный способ сделать это - скопировать элементы в меньший массив и отказаться от исходного.

Используйте ArrayList, если вы хотите динамически изменять размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...