下面只是我的一小块代码,我试图理解为什么如果我添加了注释掉的代码行,它会抛出一个EmptyStackException。如果一行中有两个空值(通过调用items.getNextItem()
生成),我需要将OneStack
顶部的项添加到TwoStack
顶部。你知道为什么会这样吗?或者如何使OneStack
的最大值同时成为TwoStack
的最大值?
我尝试过将这行代码放入if
中,为onestack.peek()
的值赋一个变量,但这些都没有帮助。这几乎就像是注释掉的那一行在清空整个堆栈(??)。
要点:如果在注释掉的代码行中,我将onestack.peek()
与任何其他值交换,那么它就可以正常工作。那么,为什么它不能与onestack.peek()
一起工作呢?
oneStack.push(firstItem);
twoStack.push(firstItem);
nextItem = items.getNextItem();
oneStack.push(nextItem);
twoStack.push(nextItem);
while (!done) {
if (oneStack.peek() == null) {
oneStack.pop();
oneStack.pop();
twoStack.pop();
twoStack.push(oneStack.peek()); // the commented out line below causes this line to throw an EmptyStackException if uncommented.
newItem = items.getNextItem();
oneStack.push(nextItem);
if (oneStack.peek() == null) {
oneStack.pop();
twoStack.pop();
//twoStack.push(oneStack.peek()); // if I uncomment this it breaks, but this needs to happen for twoStack to be correct
} else {
twoStack.push(nextItem);
}
} else if (oneStack.peek() == targetItem) {
done = true;
} else {
nextItem = items.getNextItem();
oneStack.push(nextItem);
twoStack.push(nextItem);
}
这是生成项的方式:
项目1,项目2,项目3,项目4,项目5,null,null,项目6,项目7
twoStack应为:item1,item2,item3,item4,item5,item4,item3,item6,item7
我建议在尝试从堆栈中弹出任何内容或查看之前,首先检查它是否为空。至少它可以防止例外。
我是Git的新手(刚开始2天)。我正在尝试创建一个项目来实践我从这里学到的基本命令。 到目前为止我在哪里: > [success]创建一个新的公共git项目(因为我以前尝试过私有和内部但无法克隆它,我也不知道为什么)。给你。 将添加到项目中。 [成功]创建名为的新分支。 [成功]在我的本地文件夹中,使用以下命令设置全局和: null 所以我确实输入了我的凭据(与我登录gitlab.com时使用的用
我的目标是让我的容器数据库进入挂载模式,以执行系统更改语句来启用闪回功能。 为闪回事务配置数据库 环境:OS Win 8.1 64位,Oracle 12c(12.1.0.2.0)64位 我验证了我的侦听器和db服务都在运行。 Listener.log 9月08 13:31:42 2015日星期二系统参数文件为C:\OracleServer\Products\12.1.0\dbhome_1\Netw
我目前有以下示例代码,我试图将OutputStream转换为InputStream,这是我从http://blog.ostermiller.org/convert-java-outputStream-InputStream中的获得的想法 但这里我的问题是,save方法可能会抛出IOException,我希望捕获它,并将其作为getInputStream方法的一部分重新抛出。 我读过如何从线程捕捉异
资料: 安装的所有扩展: 已尝试运行: 错误日志中的错误: PHP分析错误:语法错误,第50行的/home/username/laravel/public/index.PHP中出现意外的“class”(T_类),需要标识符(T_字符串)或变量(T_变量)或“{”或“$” 访问站点时:HTTP错误500 有什么想法吗? 编辑1: 公共/索引的内容。php 我是如何安装laravel的: 通过SSH登
我在服务器上托管了一个spring应用程序(Tomcat 8.5)。如果没有人使用它,它就会闲置。我已经知道,如果数据库处于空闲状态8小时(MySQL的默认超时),就会发生超时。正如在Spring Autoreconnect and Connection lost过夜帖子中提到的,我已经尝试了这里提供的解决方案。我尝试过配置应用程序。但这并不能解决问题。 (PS:除了Spring应用程序中的app