有一个list,存放了很多string型数据,查找并去除所有与给定字符串相同的字符串,请写出实现代码
/**
*
*/
package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author Administrator
*
*/
public class Test_list {
/**
* 对List的遍历有三种方式
* List<A> list = new ArrayList<A>();
* list.add(new A());
* list.add(new A());
* ...
* 第一种:
* for(Iterator<A> it = list.iterator(); it.hasNext(); ) {
* ....
* }
* 这种方式在循环
* 执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出并发访问的错误.
* 第二种:
* for(A a : list) {
* .....
* }
* 内部调用第一种, 换汤不换药, 这种循环方式还有其他限制, 不建议使用它
* 第三种:
* for(int i=0; i<list.size(); i++) {
* A a = list.get(i);
* ...
* }
* 内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题!
* @param args
*/
public static void main(String[] args) {
List list = new ArrayList();
list.add("sp");
list.add("kk");
list.add("mm");
list.add("jk");
for(Iterator it = list.iterator(); it.hasNext(); ){
System.out.println(it.next());
}
for(int i = 0; i < list.size(); i++){
if(list.get(i).equals("kk")){
list.remove(i);
}
}
for(Iterator it = list.iterator(); it.hasNext(); ){
System.out.println(it.next());
}
}
}
移除之前:
sp
kk
mm
jk
移除之后:
sp
mm
jk