Java:如何重置arraylist以使其为空

EI7*_*756 19 java 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 37

如果数组在对方法的调用中持续存在(例如,如果它是类的成员),则可以调用suggestedPhrases.clear()清除它.

在您的示例中,似乎没有任何需要suggestedPhrases在调用之间保持持久性,因此您可以在每次调用方法时创建(并返回)新的数组列表:

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

  • 然后方法名称可能实际上反映了函数的功能! (2认同)

mic*_*667 8

您可以调用该clear方法,但通常我更喜欢创建一个新实例而不是重用现有实例.开销可以忽略不计(除了真正的性能关键部分),因为今天的JVM可以很好地处理对象重新分配.