File d'attente qui a des objets retourne true pour isEmpty() de Java

J'ai un programme qui crée une file d'attente, enqueues les objets de la file d'attente, puis retire un par un, si la file d'attente n'est pas vide. Le problème que j'ai, c'est que la file d'attente est livré vide à chaque fois qu'il est cochée. L'impression est appelé dans la file d'attente après le replacement de chaque objet et de l'impression de la file d'attente du contenu de l'amende juste.

import java.util.*;
import java.io.*;
public class Processor2
{
private LinkedQueue queue = new LinkedQueue();
private int time = 0;
private int count = 100;
private int amount = 0;
private PrintWriter out;
private Person temp;
private boolean var;
private Random randomNum = new Random();;
private String turn;
private int popCount=0;
private int loopCount =0;
public void start()
{
amount = randomNum.nextInt(5);
amount += 5;
pop(amount, time);
sim();
}
public void pop(int num, int time)
{
for(int i=1; i<=num; i++)
{
Person pe = new Person(i, time, 0);
queue.enqueue(pe);
System.out.println(queue);
}   
popCount += num;
}
public void sim()
{
try
{
out = new PrintWriter(new FileWriter("output.txt")); 
while(loopCount<=100)
{
var = queue.isEmpty();
if(var=true)
{
System.out.println("queue is empty");
}
if(var=false)
{
Object temp = queue.dequeue();
double rand = Math.random();
if(rand < 0.5)
{
System.out.println("inside if else statement");
//does stuff with object //
loopCount++;
}
else
{
System.out.println("inside if else statement");
//does stuff with object //
loopCount++;
}
}
}
out.close();
}
catch (IOException ioe)
{
System.out.println("Error Writing to File: " + ioe);
}
}
}

il ne semble pas être quelque chose de mal avec la file d'attente du isEmpty() la méthode, mais ici il est:

public boolean isEmpty() 
{
if(count == 0)
{
return true;
}
else
{
return false;
}
}
  • Peut-être que le comte n'est pas mis à jour correctement dans la file d'attente?
  • Sans voir la source pour LinkedQueue (votre propre classe?) il est impossible de savoir ce qu'il se passe.
  • return count == 0 est suffisant, pas besoin d'avoir if (bool) return true else retrun false...
  • La Question devrait être fermé ou supprimé, comme le problème était une faute de frappe dans le code et non pertinentes pour les files d'attente à tous.
InformationsquelleAutor bitva | 2012-04-13