File, file d'attente et ViewQueue en Java
Je suis en train de faire une file d'attente en java. Voici mon code:
public class ListQueue {
public static void main(String[] args){
Queue myQueue;
Scanner sc = new Scanner(System.in);
String input;
int choice = 99;
do{
System.out.println("================");
System.out.println("Queue Operations Menu");
System.out.println("================");
System.out.println("1,Enquene");
System.out.println("2,Dequeue");
System.out.println("3,Empty?");
System.out.println("4,Count?");
System.out.println("5,View Queue");
System.out.println("0, Quit\n");
System.out.println("Enter Choice:");
try{
choice = sc.nextInt();
switch(choice){
case 1:
System.out.println("Please enter name: ");
input = sc.next();
myQueue.enqueue(input);
System.out.println(input + "is successful queued");
break;
case 2:
if(myQueue.isEmpty()){
}
break;
case 3:
if(myQueue.isEmpty()){
System.out.println("Queue is empty");
}else{
System.out.println("Queue is not empty");
}
break;
case 4:
System.out.println("Number of people is " + "the queue" + myQueue.size());
break;
case 5:
if(!myQueue.isEmpty())
myQueue.viewQueue();
else
System.out.println("Queue is empty");
break;
case 0:
System.out.println("Good-bye");
break;
default:
System.out.println("Invalid choice");
}
}
catch(InputMismatchException e){
System.out.println("Please enter 1-5, 0 to quit");
sc.nextLine();
}
}while(choice != 0);
}
}
Cependant, j'ai l'erreur à l'enqueue() et viewQueue() que je me demande pourquoi. Suis-je déclarer la file d'attente dans un mauvais sens? Merci à l'avance. Je suis nouvelle dans la file d'attente de sorte s'il vous plaît garder avec moi.
Vous devez vous connecter pour publier un commentaire.
Java files d'attente n'ont pas de mise en file d'attente et de résorption de l'méthodes, ces opérations sont effectuées en utilisant les méthodes suivantes:
Replacement:
add(e)
: lève une exception si elle ne parvient pas à insérer l'objetoffer(e)
: retourne false si elle ne parvient pas à insérer l'objetLa file d'attente:
remove()
: lève une exception si la file d'attente est videpoll()
: renvoie la valeur null si la file d'attente est videPrendre un coup d'oeil à la première de l'objet dans la file d'attente:
element()
: lève une exception si la file d'attente est videpeek()
: renvoie la valeur null si la file d'attente est vide(voir: http://docs.oracle.com/javase/tutorial/collections/interfaces/queue.html)
Vous pouvez également vérifier ce que c'est plus utile:
http://docs.oracle.com/cd/B10500_01/appdev.920/a96587/apexampl.htm
Vous n'avez pas initialisé myQueue:
Noter que la File d'attente est un abtract classe,vous devez l'initialiser myQueue à la mise en œuvre appropriée.
Reportez-vous ci-dessous javaDoc:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Queue.html
@Par la façon dont comment puis-je en boucle via l'élément à l'intérieur de la file d'attente? Pouvez-vous me poster quelques exemple –
Je viens d'ajouter des fonctionnalités à votre Cas 5: qui est pour l'affichage de la Liste des éléments.
Et Ryman Holmes suggéré que vous pouvez utiliser ArayDeque.
Avantages:
- Il est plus rapide que la Pile et LinkedList
- ArrayDeque ont pas de restrictions de capacité afin qu'ils puissent grandir en tant nécessaires à l'appui de l'utilisation.
Risque:
- Ils ne sont pas thread-safe; en l'absence de synchronisation externe.
- Ils ne prennent pas en charge l'accès simultané par plusieurs threads.
Comme zerocool dit que vous n'êtes pas de l'initialisation de la File d'attente, comme la File d'attente est une interface et vous ne peut pas instancier directement à une interface, vous devez instancier une classe qui implémente l'interface
Queue
commeArrayDequeue
,LinkedList
etc...D'initialiser la File d'attente et de se débarrasser des erreurs que vous besoin de quelque chose comme ceci:
ou
Voici l'API pour le type de Files d'attente, vous pouvez instancier
Voir aussi