这是我的arrayList代码,
String[] n = new String[]{"google","microsoft","apple"};
final List<String> list = new ArrayList<String>();
Collections.addAll(list, n);
如何从上面的列表中删除包含le
的所有元素
有没有任何默认方法或通过循环我们必须手动删除。告诉我如何做。谢谢。
答案 0 :(得分:2)
使用以下代码。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class RemoveElements {
/**
* @param args
*/
public static void main(String[] args) {
String[] n = new String[]{"google","microsoft","apple"};
List<String> list = new ArrayList<String>();
Collections.addAll(list, n);
System.out.println("list"+list);
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
if(iter.next().contains("le"))
iter.remove();
}
System.out.println("list"+list);
}
}
答案 1 :(得分:0)
List的javadoc的一部分:
/**
* Removes the first occurrence of the specified element from this list,
* if it is present (optional operation). If this list does not contain
* the element, it is unchanged...
boolean remove(Object o);
我希望这就是你要找的东西。
答案 2 :(得分:0)
为什么要add
然后remove
?
在adding
之前检查。
String[] n = new String[]{"google","microsoft","apple"};
final List<String> list = new ArrayList<String>();
for (String string : n) {
if(string.indexOf("le") <0){
list.add(string);
}
}
在列表中只添加一个元素microsoft
。
答案 3 :(得分:0)
是的,你必须从列表中的所有值循环,
这可能会对你有帮助,
String[] array = new String[]{"google","microsoft","apple"};
List<String> finallist = new ArrayList<String>();
for (int i = array.length -1 ; i >= 0 ; i--)
{
if(!array[i].contains("le"))
finallist.add(array[i]);
}
答案 4 :(得分:0)
从Java 8开始,您可以使用
list.removeIf(s -> s.contains("le"));