易截截图软件、单文件、免安装、纯绿色、仅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入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

Java Socket 长连接通信

 最近项目中有个需求,要用Socket实现长连接,并且在通信过程中要互为server和client,即在一个连接中,既能够发送消息,(此时作为客户端),又要能够接收消息(此时作为server端),研究了下,实现方式如下:
一、发送消息时建立连接,构建通道。
Socket socket = new Socket();
SocketAddress endpoint = new In ......

Java正则表达式的解释说明

1.1.字符
x    字符 x。例如a表示字符a
\\    反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次)
\0n    带有八进制值 0的字符 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号