Java 如何让程序连续处理一个方法

Java 如何让程序连续处理一个方法,java,Java,我的问题是:为什么我的程序在处理文本文件中的行时不重复自身 我正在写一个管理车库的类——车库中的汽车被放入不超过7辆的堆栈中,如果已经满了,它们将进入不超过5辆的队列。有两种方法可以手动添加汽车,还有一种方法可以读取文本文件的输入。我还得到了一个stackInt类,在创建stack对象时要求我使用该类。它只有4种方法,这使得事情变得麻烦: public interface StackInt<E> { E push(E obj); E peek(); E pop

我的问题是:为什么我的程序在处理文本文件中的行时不重复自身

我正在写一个管理车库的类——车库中的汽车被放入不超过7辆的堆栈中,如果已经满了,它们将进入不超过5辆的队列。有两种方法可以手动添加汽车,还有一种方法可以读取文本文件的输入。我还得到了一个stackInt类,在创建stack对象时要求我使用该类。它只有4种方法,这使得事情变得麻烦:

public interface StackInt<E> {
    E push(E obj);
    E peek();
    E pop();
    boolean empty();
}
输出为:

 Number parked: 7
    Number waiting: 5
    Parking WEB445 ... true
    Parking BEA345 ... true
    Cars in Garage: Y23456, X12345, B12GFT, Z23YTU
    Cars waiting: W321RE, CVBNMK, DFGHJK, ERTYUI, FGHJKL
    Z23YTU departs after 2 car(s) moved
    Cars in Garage: Y23456, X12345, Z23YTU
    Cars waiting: W321RE, CVBNMK, DFGHJK, ERTYUI, FGHJKL
“车库中的汽车”系列的预期内容是:

正在处理的文本文件(a表示到达,d表示离开):

当你说“如果一辆车从车库中被移走,那么队列中的另一辆车应该被插入”时,这个逻辑在你的execution()方法中是什么?该方法中没有任何代码将车辆从队列中移除


代码中缺少您期望的行为。

您的
出发()
不会在车身的任何位置调用
到达()
方法,该方法会将下一辆车添加到车库。当
出发()
成功时(返回值有效(不是
-1
),您知道一辆车已离开车库。然后,您只需使用队列中的下一辆车,并通过
arrival()
方法添加它。而且它可以放在车库里,因为现在可以放下一辆车了。

Q:那么你的问题是什么?你到底希望你的代码做什么?它不会再处理这些车,也就是说,如果一辆车离开,队列中的一辆应该进入堆栈。我不知道为什么我没有计算。所以在离开方法中是这样的:while true{arrival(license)}@Dogwithastick您不需要
while
循环。只有一辆车(最多)离开了车库。@Dogwithastick试试。它很近,但返回“W321RE,Y23456,X12345,null,B12GFT,null,Z23YTU”。已尝试删除而不是轮询-未获取此类元素exception@Dogwithastick您可能希望使用调试器并使用单个步骤来查看程序如何执行您的方法,请参阅temp.remove(许可证);
public class GarageTest
{
    public static void main (String [] args) 
   {
      Garage g1 = new Garage("parking.txt");
      System.out.println("Number parked: " + g1.numberParked());
      System.out.println("Number waiting: " + g1.numberWaiting());
      System.out.println("Parking WEB445 ... " + g1.arrival("WEB445"));
      System.out.println("Parking BEA345 ... " + g1.arrival("BEA345"));
      System.out.println(g1);
      System.out.println("Z23YTU departs after " + g1.departure("B12GFT") + " car(s) moved");
      System.out.println(g1);
    }
}
 Number parked: 7
    Number waiting: 5
    Parking WEB445 ... true
    Parking BEA345 ... true
    Cars in Garage: Y23456, X12345, B12GFT, Z23YTU
    Cars waiting: W321RE, CVBNMK, DFGHJK, ERTYUI, FGHJKL
    Z23YTU departs after 2 car(s) moved
    Cars in Garage: Y23456, X12345, Z23YTU
    Cars waiting: W321RE, CVBNMK, DFGHJK, ERTYUI, FGHJKL
DFGHJK CVBNMK R23EWQ W321RE Y23456 X12345 B12GFT Z23YTU 
with the queue on the next line. It's removing a few that have "d", but not filling the garage 
afterward
a A123TR
a Z23YTU
a Z23YTU
a ERW345
d ERW345
a B12GFT
d a23TR
a X12345
a Y23456
a W321RE
d R23EWQ
a CVBNMK
a DFGHJK
a ERTYUI
a FGHJKL
a GHJKL9
a HJKL98