日期:2014-05-20  浏览次数:20655 次

小问题,求高手,有分
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控制元素个数