【发布时间】:2013-10-27 10:12:16
【问题描述】:
我们得到一个 ArrayList 形式的单词列表,如下所示:
public ArrayList<String> getListOfStrings(){
ArrayList<String> list = new ArrayList<String>();
list.add("This");
list.add("is");
list.add("an");
list.add("exercise");
list.add("to");
list.add("illustrate");
list.add("the");
list.add("use");
list.add("of");
list.add("ArrayLists");
list.add(".");
return list;
}
如何编写一个方法来删除该列表中的所有单词(即 ArrayList 中的所有对象),这些单词的长度由用户输入“len”?
我已经写了一个方法,列出了用户输入的所有长度为“len”的单词,并且有效,如下:
public ArrayList<String>getWordsWithLength(int len, ArrayList<String> lijst){
ArrayList<String> list = new ArrayList<String>();
for(String woord: lijst){
if(woord.length()==len){
list.add(woord);
}
}
return(list);
}
但作为一个 java 初学者,我被困在如何删除长度为“len”的单词上。请帮忙! (我的印象是您首先从列表的末尾删除它们,就像从后到前一样)
【问题讨论】:
-
您通过不将它们添加到您返回的新列表中来删除它们。
-
Backwards 也可以,但只能使用传统的
for循环(属于for(int i=list.size-1;i>=0;i--)种类。但首选 AbstractChaos 的解决方案 -
谢谢,您能详细说明一下吗?我收到一个错误:“大小在 java.util.ArrayList 中具有私有访问权限”更不用说我没有 100% 遵循这段代码中发生的事情(我还是个初学者)
-
@user2895102 - 这是理查德的一个错字。它应该是
list.size()而不是list.size。它所做的只是向后循环索引,以确保在删除元素时索引不会搞砸。