易截截图软件、单文件、免安装、纯绿色、仅160KB

java实现的stack pop方法小细节

 前些天编小程序,写其中有一个自己实现的stack的pop如下:
public class Stack<T>{
 
   private ArrayList<T>  list;
   public Stack(){
          list =  new ArrayList<T>();
}
          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而非数据。


相关文档:

JAVA String类学习

  最近在找工作,基本都是java开发的方向,很多笔试、面试题都是围绕String类对象展开的,花样很多,但是万变不离其中,掌握了基本的原理,无论怎么变,实质都是一样的。下面总结一下关于String的基本知识点:
(一)String是final的
可能我们很多人遇到过这个问题final关键字有什么作用,其中一个回答就是final修饰 ......

java获取原子钟时间并改变本地时间

 package dtm.tools;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Dat ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号