这里用到了java中的Stack,和别的方法一样(LinkedList),也是先使用Stack带上类型(这里是<Integer>)声明,然后再new出来。
这道题的思路就是使用两个栈来实现这个包含min函数的栈,因为一个栈具有局限性,所以两个栈,一个栈存储原始内容,每次在pop时与顶部元素对比。并且等于也是必须的,不然一个元素两个相连就会出错。
这里需要的返回值是int!!!
这里千万要注意,千万要注意,是equals而不是==,千万记住!!不是引用的对比,是
-
if (len == 0)
-
throw new EmptyStackException();
-
return elementAt(len - 1);
这里注意,peek()出来的实际上是一个Object对象类型的元素,所以不可以使用
2023/7/19
JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样。
对于Integer来说,你用==比较的是对象引用地址,而不是Integer的值。Integer你要把当当成一个对象来看待
要比较两个Integer类型的大小可以调用它的intValue方法 Long 对应的是longValue,这个其实在api就是调用强转的方法
所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。第二次出错了,谨记!千万要用equals比较integer!!!