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

时间:2011-10-06 13:01:37

标签: 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);
    }
}

2 个答案:

答案 0 :(得分:37)

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

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

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

答案 1 :(得分:8)

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