Java: Как reset arraylist, чтобы он был пуст

У меня есть arraylist<interface> Объекты добавляются в этот список в цикле for. Я хотел бы, чтобы этот arraylist был пустым каждый раз, когда вызывается метод.

Вот код:

Массив, который я хочу опорожнить здесь, предлагаетсяPhrases.

public List<Interface> returnSuggestedList(String prefix) {

    String tempPrefix = prefix;


   // suggestedPhrases = null;
    //suggestedPhrases = new ArrayList<Interface>();
    //Vector<String> list = new Vector<String>();

    //List<Interface> interfaceList = new ArrayList<Interface>();
    Collections.sort(wordsList);
    System.out.println("Sorted Vector contains : " + wordsList);
    int i = 0;

    //List<String> selected = new ArrayList<String>();
    for(String w:wordsList){
        System.out.println(w);
        if(w.startsWith(prefix.toLowerCase())) { // or .contains(), depending on 
            //selected.add(w);     // what you want exactly 
        Item itemInt = new Item(w);
        suggestedPhrases.add(itemInt);
    }
}

Ответы

Ответ 1

Если массив сохраняется во всех вызовах вашего метода (например, если он является членом класса), вы можете вызвать suggestedPhrases.clear(), чтобы очистить его.

В вашем примере, похоже, нет необходимости перетаскивать suggestedPhrases через вызовы, поэтому вы можете просто создавать (и возвращать) новый список массивов при каждом вызове метода:

public List<Interface> returnSuggestedList(String prefix) {
   ArrayList<Interface> suggestedPhrases = new ArrayList<Interface>();
   // populate suggestedPhrases here
   return suggestedPhrases;
}

Ответ 2

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