吴旭晓个人博客 繁体中文 简体中文

首页| 日志 |JAVA |ASP |PHP |Android |IOS |ASP.NET |JavaScript |DIV+CSS |SEO |taobaoke |饼哥语录
繁体中文 简体中文

Java实现的stack pop方法小细节

前些天编小程序,写其中有一个自己实现的stack的pop如下:


    public class Stack{
  private ArrayList list;
  public Stack(){
  list = new ArrayList();
  }
  public T pop(){
  if(list.size != 0 ){
  T popOut = list.get(list.size - 1);
  remove(popOut);
  return popOut;
  }
  else{
  return null;
  }
  }
  }

  我当时在另一个类里debug,愣是找不出来,最后才发现这里的pop方法出问题了。当list是int数据时,若list为1,2,3,2;pop出来是2,但是list并不如想象中的为1,2,3;而是变成了1,3,2;这是因为double的equals方法认定只要值一样两者就一样,它popPut为2,接着remove(2);它在找到第一个2是就认为那已经匹配了,就把它删除,所以remove中应该用他的重载函数remove(list.size - 1).

  当然还应该注意若是int型的他优先将其认为是index而非数据

作者:吴旭晓 | 来源:个人博客 | 点击量:1563 | 发布时间:2013-06-24
最新留言 | 返回上一页 | 返回首页

相关文章:

版权所有:吴旭晓个人博客 Copyright © 2013-2023 个人博客