ArrayList里的一个contains()方法问题。为了确定ArrayList是否包含某个数据项,我们一直下溯到data,把每个元素与target做比较,如果找到它,就返回true,否则返回flase.
public boolean contains(E target){
for (int i=0;i <size;i++){
if(data[i].equals(target)){
return true;
}
}
return false;
}
//data是这样定义的,E是范型,private E[] data;
-----------------------------------为什么下面定义contains的做法是错误的?
public boolean contains(E target){
for (E e : data){
if(e.equals(target)){
return true;
}
}
return false;
}
------解决方案--------------------
data是存放元素,但是不是每次都存满的,当存满的时候需要重新申请两倍的空间,所以不能全部遍历,要用size控制元素个数