gpt4 book ai didi

java - 尽管重置了变量,但它的值并没有改变

转载 作者:行者123 更新时间:2023-12-02 10:10:04 25 4
gpt4 key购买 nike

说实话,我不知道问题出在哪里。代码的另一部分也发生了同样的问题,但尚未修复。该项目是根据客户对象的到达时间合并两个已就绪的排序队列,该客户对象需要 3 个整数。这三个整数分别是到达时间、服务时间和退出时间。
它只打印 917 7 次。 这是代码。

public static Queue2<Customer> Question3(Queue2<Customer> A, Queue2<Customer> B) {

Queue2<Customer> C = new Queue2<Customer>();


if (A.getSize() == 0 && B.getSize() == 0) {

System.out.println("Sorry Bro");

} else if (A.getSize() == 0) {

while (B.getSize() > 0) {

C.enqueue(A.dequeue());

}

} else if (B.getSize() == 0) {

while (A.getSize() > 0) {

C.enqueue(B.dequeue());

}

} else {
Customer c1 = A.dequeue();
Customer c2 = B.dequeue();
int n = A.getSize() + B.getSize();

for (int x = 0; x < n; x++) {

if (A.getSize() == 0) {

C.enqueue(B.dequeue());

} else if (B.getSize() == 0) {

C.enqueue(A.dequeue());

} else {

if (c1.getArrival() > c2.getArrival()) {

C.enqueue(c2);
c2 = B.dequeue();
System.out.println(c2.getArrival());
} else {

C.enqueue(c1);
c1 = A.dequeue();
System.out.println(c1.getArrival());
}

}

}

}

return C;
}

主要方法如下:

 Queue2<Customer> ctest = new Queue2<Customer>(); 
ctest.enqueue(new Customer(915,10,0));
ctest.enqueue(new Customer(916,6,0));
ctest.enqueue(new Customer(918,7,0));
ctest.enqueue(new Customer(925,3,0));

Queue2<Customer> ctest1 = new Queue2<Customer>();
ctest1.enqueue(new Customer(917,10,0));
ctest1.enqueue(new Customer(922,3,0));
ctest1.enqueue(new Customer(924,2,0));

Queue2<Customer> ctest3 = Question3(ctest,ctest1);
Customer c4 = ctest3.dequeue();

while(ctest3.getSize() > 0) {

System.out.println(c4.getArrival());
c4 = ctest3.dequeue();
System.out.println("Printing");

}
System.out.println(c4.getArrival());

最佳答案

不清楚您原来的问题,如果我们实现了 Queue2 将会很有帮助。

关于代码,您需要考虑一些事情,

else if (A.getSize() == 0) { 

while (B.getSize() > 0) {

C.enqueue(A.dequeue());
// A is already empty, why you dequeue it ?
// same goes with the other else (may be you wanted to do C.enqueue(B.dequeue())

}
}

并且,

Customer c1 = A.dequeue(); // dequeue usually reduce the size of the queue
Customer c2 = B.dequeue();
int n = A.getSize() + B.getSize(); // This `n` might not be the one you expected

关于java - 尽管重置了变量,但它的值并没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com