Как хранить предложения во временном массиве в Java? - PullRequest
0 голосов
/ 05 июля 2011

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

У кого-нибудь есть идеи?

Ответы [ 3 ]

8 голосов
/ 05 июля 2011

Не используйте массив.Используйте коллекцию типа String, которая может динамически расти, например, ArrayList .Вот несколько быстрых примеров кода: Пример 1 , Пример 2

Некоторые примечания по управлению памятью ArrayList из документов Java:

Емкость - это размер массива, используемого для хранения элементов в списке.Это всегда как минимум размер списка.Когда элементы добавляются в ArrayList, его емкость увеличивается автоматически.Детали политики роста не указываются за исключением того факта, что добавление элемента имеет постоянную амортизированную временную стоимость.

Приложение может увеличить емкость экземпляра ArrayList перед добавлением большого количества элементов с помощью операции sureCapacity.Это может уменьшить объем инкрементного перераспределения.

Обратите внимание, что даже в документах не указано, как именно осуществляется внутреннее управление.

2 голосов
/ 05 июля 2011

В Java ArrayList (или любой другой тип коллекции Java) может позаботиться обо всем управлении памятью для вас:

ArrayList<String> strings = new ArrayList<String>();

Если вы хотите добавить строку:

strings.add("New String");

Если вы хотите получить строку с определенным индексом (в данном примере, индекс 1):

strings.get(1);

В ArrayList есть намного больше методовкласс также.

1 голос
/ 05 июля 2011

Вам нужна коллекция, которая динамично растет.ArrayList - первое, что приходит на ум;внутренне он очень похож на обычный массив, поэтому он предлагает быстрый произвольный доступ, если вам это нужно.LinkedList может быть лучше, если у вас нет оценки количества элементов, которые вам в конечном итоге понадобятся, при условии, что вам потребуется только последовательный доступ к его элементам (произвольный доступ доступен, но он не будет быстрым).

...