我有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);
}
}
答案 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可以很好地处理对象重新分配。