package com.bjsxt; import java.util.Arrays; import java.util.EmptyStackException; /** * 自定义:栈类型容器 */ public class MyStack<E> { private Object[] arr;//存放元素的物理结构 private int stackLength = 4;//数组的默认长度 private int size;//记录栈容器的元素个数 private int index = -1;//操作数组下标位置的指针 /** * 判断栈容器是否为空 * @return */ public boolean empty(){ return this.size == 0; } /** * 获取栈顶元素 * @return */ public E pop(){ //如果栈容器中没有元素则抛出异常 if(this.index == -1){ throw new EmptyStackException(); } //记录元素个数 this.size--; //返回栈顶元素 return (E)this.arr[index--];//返回的是Object类型,报错,强转为(E)泛型类型 } /** * 向栈容器中添加元素 * @param item * @return */ public E push(E item){ //初始化数组 this.capacity(); //向数组中添加元素 this.arr[++index] = item; //前置增减运算符++、--,先加减后运算 //记录元素个数 this.size++; return item; } /** * 数组初始化、以1.5倍对数组进行扩容 */ private void capacity(){ //数组初始化 if(this.arr == null){ this.arr = new Object[this.stackLength]; } //以1.5倍对数组扩容 if(this.size-(this.stackLength-1)>=0){ this.stackLength = this.stackLength+(this.stackLength>>1);// >>1:表示除以2 this.arr = Arrays.copyOf(this.arr,this.stackLength); } } public static void main(String[] args) { MyStack<String> myStack = new MyStack<>(); myStack.push("a"); myStack.push("b"); myStack.push("c"); myStack.push("d"); myStack.push("e"); myStack.push("f"); System.out.println(myStack.size); /*System.out.println(myStack.pop()); System.out.println(myStack.pop()); System.out.println(myStack.pop()); System.out.println(myStack.pop()); System.out.println(myStack.pop());*/ for(int i=0;i<=myStack.size;i++){ System.out.println(myStack.pop()+" "+i); } } }
所有的代码都跟老师一样的时候也是正常输出的。
然后我就想后面取用pop()方法取元素的时候用for循环去取,for循环的长度我用myStack.size这个数组长度,输出的时候如图所示,找不出问题,求老师解答
老师,麻烦问一下运行成功之后为什么显示成这样,一堆乱码
//获取迭代器对象 Iterator<String> iterable = list.iterator(); while(iterable.hasNext()){ //String value = iterable.next(); //System.out.println(value); System.out.println(iterable.next()); }
老师这里直接在输出语句里面使用 next()方法不就可以了吗?视频中重新赋值了下,这样做有什么优势吗
、关于这个问题,我突然明白,这个功能是我自己增加的,ID数据应该是后端传给前端,那我要怎么样才能传回给前端呢?
老师,这里为什么传的参数是flag 它为什么可以和addUsers判断是不是添加用户?
这样是不是登录页面的静态资源也被拦截了?
老师,在ajax这一章中的实例要是真的部署在服务器上,不同用户访问时进行的数据操作(增,删,改)是针对同一个列表吗,如果要想为每个用户设置一个表可以怎么实现呢
老师,为什么我的输入 git log 在Author这边用户名会出现unknown
老师你好!请问我这是什么情况?一直显示报错。
运行结果:
老师请问一下,为什么我配置完环境变量以后,还是提示我scrapy不是内部或者外部命令,我已经把C:\users\陈鸿杰\appdata\roming\python\python39\scripts这个路径添加到path中去了,可是还是不行,麻烦老师帮我看看怎么回事?
这个数组扩容是以多少倍进行扩容的,扩容容量是怎么样的
老师,请问职业规划这个阶段,视频上的文档可以下载来看吗
老师,想问一下这三种方法在本质上是不是都是构造ConfigurationProperties对象啊,那第二种方法的JdbcConfiguration构造器是在哪里被使用了呢,然后能达到和其他两种一样的效果,Autowired注解是不是可以理解为一个自动构造属性的注解
如果我想将子弹改成图片大概要怎么操作呢?
为什么会报错啊,构造方法也有,数据类型和对象包含的数据类型都一样的,可是拷贝不了
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637