这是我的 arrayList 代码,
String[] n = new String[]{"google","microsoft","apple"};
final List<String> list = new ArrayList<String>();
Collections.addAll(list, n);
le
如何从上面的列表中删除所有包含的元素。
是否有任何默认方法或循环我们必须手动删除。告诉我该怎么做。谢谢。
从 java 8 你可以使用
list.removeIf(s -> s.contains("le"));
使用以下代码。
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);
}
}
列表的 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);
我希望这就是你要找的。
为什么要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
到列表中的一个元素。
是的,您必须从列表中的所有值循环,
这可能会对您有所帮助,
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]);
}