集合类的遍历删除和包含判断
这里用List举例
循环删除
1.常用的方式是for循环遍历删除
这样的方式会有问题,因为删除的时候会改变元素的顺序,会发生前移,这样同一个坐标对应的元素会发生变化。
2.推荐采用迭代的方式遍历删除
代码如下:
Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
第二个问题:判断集合的包含
list.contains(objext)方法
需要被使用的objext实现equal方法
举个栗子
public String name;
public String code;
@Override public boolean equals(Object o) {
if(o instanceof Item){
return ((Item) o).name.equals(this.name) && ((Item) o).code.equals(this.code);
}else{
return false;
}
}