由于某种原因,我在创建方法时遇到了这个错误。在此处输入图像描述
有人能帮我这个吗?这是我用的代码
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Queue<Integer> q= new LinkedList<Integer>();
NQ(q);
displayQ(q);
DQ(q);
displayQ(q);}
public static void NQ(Queue<Integer> q){
Scanner scan = new Scanner(System.in);
System.out.print("Number of digits to be added: ");
int digits= scan.nextInt();
System.out.println("Enter numbers to be Added:");
for (int i = 0; i < digits; i++) {
q.add(scan.nextInt());
}
scan.close();
}
public static void DQ(Queue<Integer> q){
Scanner scan = new Scanner(System.in);
System.out.print("Number of digits to be remove: ");
int digits= scan.nextInt();
for (int i = 0; i < digits; i++) {
q.remove();
}
scan.close();
}
public static void displayQ(Queue<Integer> q) {
System.out.println(q);
}}
这是代码的输出
Number of digits to be added: 5
Enter numbers to be Added: 1 2 3 4 5
[1, 2, 3, 4, 5]
Number of digits to be remove: Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Test.DQ(Test.java:31)
at Test.main(Test.java:12)
我该怎么办?!?!?!?
这里的问题是您使用java.util.Scanner
的方式。
一旦您关闭扫描仪,它也会关闭您传递给它的输入流(在这种情况下为System.in)。你可以在文档中读到更多关于这个的内容。
解决这个问题的一种方法是创建一个Scanner实例,并在需要的地方使用它。在您的特定情况下,您可以执行以下操作:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Queue<Integer> q= new LinkedList<Integer>();
NQ(q, scanner);
displayQ(q);
DQ(q, scanner);
displayQ(q);
scanner.close();
}
您需要更新NQ
和DQ
以接受扫描仪(而不是创建新实例),并且也不要用这些方法关闭扫描仪。
我收到了一个关于这个问题的建议,一个评论,说我可能没有我需要的交换,因为我的队列已经存在。于是,我就全部手动删除了。 但是,在重新部署应用程序时,我发现所有队列都有以下异常: 我不确定这意味着什么,因为我显然想要创建队列<code>myInput。组,它似乎在抱怨它不存在。。。 我也检查了这个问题,我的问题可能是权限。但我应该有它们——否则我相信我无法删除队列...... 你能给我一个解决方案吗?
警告conda . exceptions:print _ unexpected _ error _ report(1216):key error(' pkgs _ dirs ')trace back(最近一次调用last):File " C:\ program data \ anaconda 3 \ lib \ site-packages \ conda \ exceptions . py ",第
我们目前正在使用nservicebus从azure servicebus队列读取消息。 我可以通过代码创建所需的队列,但有人知道我是否可以设置配置文件,在azure上自动创建错误和输入队列吗?
该消息已从队列中删除,但在我的应用程序日志中,我得到一个错误······ 如果我正确理解stacktrace,那么oracle.jms api缺少一个标头JMSXGroupSeq,这并不是不可能的,因为对方没有使用oracle jms api创建消息。他和我都无法查看实际的队列(它在我们共同的客户端),所以我无法检查真正到位的头。 使用自定义headerFilterStrategy没有任何帮助,因
我正在准备开发连接到Azure服务总线的应用程序。对于开发,我想使用服务总线1.1。 我已经安装了localyservicebus 1.1,当我连接包服务总线时,它可以正常工作。v1_1版本。1.0.5. 但由于我希望最终使用Azure,我更喜欢使用WindowsAzure服务总线包,据我所知,它与服务总线1.1兼容。 但是当我想执行: 与WindowsAzure。ServiceBus ver 3
这里是错误 执行任务失败:应用程序:check DebugDuplicateClass。 执行com时发生故障。Android建筑格雷德尔。内部的任务。选中DuplicatesRunnable Duplicate class android。支持v4。应用程序。INotificationSideChannel位于模块core-1.5.0-runtime(androidx.core:core:1.5