Java:如何让标准输入占用两个队列?

时间:2017-08-30 16:02:30

标签: java input queue

我一直试图弄清楚如何允许用户输入两个单独的队列。更具体地说,我尝试(没有成功)有一些关键事件将终止一个队列的输入并允许我开始输入下一个队列的条目。谢谢。很高兴说这是我的第一篇文章!

Scanner scanner = new Scanner (System.in);
 while (!StdIn.isEmpty())
    {

            double one = StdIn.readDouble();
            a.enqueue(one);

        if (scanner.nextInt() == 0)
    {

                double two = StdIn.readDouble();
                b.enqueue(two);

            }

(StdIn不在标准Java库中)

1 个答案:

答案 0 :(得分:0)

假设“关键事件”为零值,您可以这样做:

Scanner scanner = new Scanner (System.in);
Queue<Double> a = new ArrayDeque<>();
Queue<Double> b = new ArrayDeque<>();
while (scanner.hasNextDouble()) {
    double value = scanner.nextDouble();
    if (value == 0)
        break;
    a.add(value);
}
while (scanner.hasNextDouble()) {
    b.add(scanner.nextDouble());
}

如果需要,您也可以将键事件检查应用于第二个循环。

请注意,任何非双输入都将停止两个队列的输入处理,并继续执行第二个while循环之后的任何代码。