ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

JAVA ArrayList remove 使用注意

来源:网络整理     时间:2014-12-26     关键词:

本篇文章主要介绍了"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

相关图片

相关文章