本篇文章主要介绍了"JAVA ArrayList remove 使用注意",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
今天尝试使用ArrayList中的remove功能,原本以为可以重载equals代码,结果发现不是,调试了很久。发现原因:自己封装一个类,使用arrayList...
今天尝试使用ArrayList中的remove功能,原本以为可以重载equals代码,结果发现不是,调试了很久。
发现原因:自己封装一个类,使用arrayList实现一个删除功能,大概代码如下:
public class A {
private ArrayList aList;
public A(){
this.aList = new ArrayList();
}
public removeItem(AItem item){
aList.remove(item);
}
}
public class AItem {
public boolean equals(AItem item) {
//想通过重载可以直接调用remove功能
return true;
}
}
但是之后通过查看代码发现不然:
public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
代码中remove的对象是object对象,过程中虽然调用了equals,但是实际上无法重载,因为传入的对象是Object,只能调用Object中自己的equals方法,这样比较的就是对象是否是同一个对象,所以,尽管用户可以重写equals方法,但是还是无法删除对象,只能通过remove(int index)的方式将对象移出。
多读些源代码果然可以更好的学习。
以上就介绍了JAVA ArrayList remove 使用注意,包括了方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_101826.html