Iterator in Queue

Status
Nicht offen für weitere Antworten.

Wusaa

Aktives Mitglied
Hallo,
ich soll einen Iterator in meine Klasse Queue einbauen. Weiß leider nicht wo ich den Iterator genau "einbauen" muss bzw. wie einer programmiert wird.
KAnn mir jemand weiterhelfen?


Code:
import java.util.LinkedList;
import java.util.NoSuchElementException;
import java.io.*;

public class Queue {

  private LinkedList list ;

  public Queue( ) {
    list = new LinkedList( );
  }

  public boolean isEmpty( ) {
    return list.isEmpty( );
  }

  public void makeEmpty( ) {
    list.clear( );
  }

  public void enqueue( Object o ) {
    list.addLast( o );
  }
   
  public Object front( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist leer." );
    return list.getFirst( );
  }
   
  public void dequeue( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist bereits leer." );
    list.removeFirst( );
  }

  public Object frontAndDequeue( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist bereits leer." );
    Object frontElement = list.getFirst( );
    list.removeFirst( );
    return frontElement;
  }

  public String toString( ) {
      return list.toString( );
    }

  public static void main( String[] args ) throws IOException {  
	    
  }
  
    System.out.println(
      "e -- Queue leer machen (makeEmpty)\n" +
      "n -- Element hinten einfuegen (enqueue)\n" +
      "f -- Vorderstes Element ausgeben (front)\n" +
      "d -- Vorderstes Element loeschen (dequeue)\n" +
      "p -- Queue von vorn nach hinten ausgeben (print)\n");
      
    Queue queue = new Queue( );
    BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );
    char command = ' ';
    while( command != 'q' ) {
      switch( command ) {
      case ' ' : { // Tue nichts
    break;
      }
      case 'e' : { // Queue leer machen
    queue.makeEmpty( );
    break;
      }
      case 'n' : { // String hinten einfuegen
    System.out.println( "\tEinen String eingeben:" );
    queue.enqueue( in.readLine( ) );
    break;
      }
      case 'f' : { // Vorderstes Element ausgeben
    try {
      System.out.println( "Vorderstes Element: " + queue.front( ) );
    }
    catch( NoSuchElementException e ) { System.out.println( e ); }
    break;
      }
      case 'd' : { // Vorderstes Element loeschen
    try {
      queue.dequeue( );
    }
    catch( NoSuchElementException e ) { System.out.println( e ); }
    break;
      }
      case 'p' : { // Queue von vorn nach hinten ausgeben
    System.out.println( "Queue:\n" + queue );
    break;
      }
      default :
    System.out.println( "Kommando " + command + " existiert nicht." );
      }
      System.out.println( "Bitte Kommando eingeben:" );
      try {
   
    command = in.readLine( ).charAt( 0 );
      }
      catch( IndexOutOfBoundsException e ) {
    System.out.println( "Keine leeren Kommandos eingeben!" );
    command = ' ';
    continue;
      }
    }
  } // main

} // class Queue
 

Wildcard

Top Contributor
Code:
public Iterator iterator()
{
       return list.iterator();
}
 

Wusaa

Aktives Mitglied
Der Iterator sollte doch das Array durchlaufen. In etwa so

Code:
for ( Iterator<String> i = c.iterator(); i.hasNext(); ) 
{ 
  String s = i.next(); 
  ... 
}

blos wo schreib ich das rein?
 

Marco13

Top Contributor
In der print-Funktion würde sich das anbieten.

Wenn das ganze auch noch getypt sein soll, kannst du
Code:
public class Queue<Type> {

  private LinkedList<Type> list ; 
...
machen (und entprechend an den jeweiligen Stellen 'Object' durch 'Type' ersetzen)

Wenn man dann noch schreibt
Code:
public class Queue<Type> implements Iterable<Type> {
kann man auch mit den neuen for-Schleifen durch die Queue laufen
Code:
for (String s : someQueue) 
{
    System.out.println(s);
}

:cool:
 
M

maki

Gast
Man hätte natürlich gleich auch von den dafür vorgesehenen Collection Klassen ableiten können, zB. AbstractList oder AbstractSequentialList, dann hätte man sich auch einige Schreibarbeit sparen können und wäre gleichzeitig Kompatibel zu den anderen Collection Klassen gewesen ;)
 

Wusaa

Aktives Mitglied
habe das jetzt mal anders gemacht. Blos erhalte ich zur laufzeit einen fehler wenn ich zum beispiel das Element an der Stelle "2" löschen möchte.

Code:
import java.util.LinkedList;
import java.util.NoSuchElementException;
import java.io.*;


public class Queue {
     static int position;
     static int remove;
 
  private LinkedList list ;

 
  public Queue( ) {
    list = new LinkedList( );
  }

 
  public boolean isEmpty( ) {
    return list.isEmpty( );
  }

 
  public void makeEmpty( ) {
    list.clear( );
  }

 
  public void enqueue( Object o ) {
    list.addLast( o );
  }
 
 
  public static   void getPosition( String ob ) {
      String PositionString = ob;
      position = Integer.parseInt(PositionString);
  }
 
   
  public static   void getDelation( String delete ) {
      String DeleteString = delete;
      remove = Integer.parseInt(DeleteString);
  }
 
 
  public Object front( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist leer." );
    return list.getFirst( );
  }
 
 
  public Object variable( ) {
        if( isEmpty( ) )
          throw new NoSuchElementException( "An dieser Position befindet 
sich kein Objet" );
        return list.get(position);
  }
 
 
  public void delete( ) {
        if( isEmpty( ) )
          throw new NoSuchElementException( "Queue ist bereits leer." );
        list.remove(remove);
  }

 
  public void dequeue( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist bereits leer." );
    list.removeFirst( );
  }

 
  public Object frontAndDequeue( ) {
    if( isEmpty( ) )
      throw new NoSuchElementException( "Queue ist bereits leer." );
    Object frontElement = list.getFirst( );
    list.removeFirst( );
    return frontElement;
  }

  public String toString( ) {
        return list.toString( );
  }

 
 
  public static void main( String[] args ) throws IOException {

    System.out.println(
      "a -- Queue leer machen \n" +
      "b -- Element hinten einfuegen \n" +
      "c -- Vorderstes Element ausgeben \n" +
      "d -- Vorderstes Element loeschen \n" +
      "e -- Element an Position x ausgeben \n"+
      "f -- Element an position x löschen \n"+
      "g -- Queue von vorn nach hinten ausgeben \n");
     
    Queue queue = new Queue( );
    BufferedReader in = new BufferedReader( new InputStreamReader( 
System.in ) );
    char command = ' ';
    while( command != 'h' ) {
      switch( command ) {
      case ' ' : {
    break;
      }
     
      case 'a' : {
    queue.makeEmpty( );
    break;
      }
     
      case 'b' : {
    System.out.println( "\tString eingeben:" );
    queue.enqueue( in.readLine( ) );
    break;
      }
     
      case 'c' : {
    try {
      System.out.println( "Vorderstes Element: " + queue.front( ) );
    }
    catch( NoSuchElementException e ) { System.out.println( e ); }
    break;
      }
     
      case 'd' : {
    try {
      queue.dequeue( );
    }
    catch( NoSuchElementException e ) { System.out.println( e ); }
    break;
      }
     
    case 'e' :{
     System.out.println( "\tPositionsnummer eingeben:" );
     getPosition(in.readLine());
               System.out.println( "Hier befindet sich das Element: " + 
queue.variable() );
    break; 
      }
   
    case 'f' :{
        System.out.println( "\tPositionsnummer eingeben:" );
        getDelation(in.readLine());
    break;       
    }
   
 
    case 'g' : {
        System.out.println( "Queue:\n" + queue );
    break;
      }
   
    default :
        System.out.println( "Befehl " + command + " existiert nicht." );
    }
      System.out.println( "\tBefehlnummer eingeben:" );
      try {
   
    command = in.readLine( ).charAt( 0 );
      }
     
      catch( IndexOutOfBoundsException e ) {
    System.out.println( "Achtung kein Befehl erkannt!" );
    command = ' ';
    continue;
      }
    }
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
N Kann man einen Iterator nur einmal verwenden Java Basics - Anfänger-Themen 5
N Warum Springt iterator nur in der Schleife weiter Java Basics - Anfänger-Themen 9
volcanos HashSet und Iterator -> Falsche Sortierreihenfolge ? Java Basics - Anfänger-Themen 18
J Methoden Die Reihenfolge der Iterator-Elemente umkehren Java Basics - Anfänger-Themen 3
J Methoden iterator for-schleife (hasNext() ) Java Basics - Anfänger-Themen 7
Stargirlxo Iterator + Methode Java Basics - Anfänger-Themen 10
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
U Hashmap Iterator selbst implementieren Java Basics - Anfänger-Themen 10
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
O Iterator erneut! Java Basics - Anfänger-Themen 8
O Iterator für eine geordnete Menge Java Basics - Anfänger-Themen 134
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
K Iterator zurückliefern Java Basics - Anfänger-Themen 8
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
S Iterator einer Liste Java Basics - Anfänger-Themen 4
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
I Erste Schritte Iterator Java Basics - Anfänger-Themen 3
M Iterator funktioniert nicht Java Basics - Anfänger-Themen 5
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
O Interface Iterator Java Basics - Anfänger-Themen 2
M Collections Frage Beispielprogrammierung Iterator Java Basics - Anfänger-Themen 13
M Iterator Java Basics - Anfänger-Themen 25
J Iterator Funktioniert nicht richtig in StackImplementierung Java Basics - Anfänger-Themen 3
Z Hashmap Iterator löscht nicht Java Basics - Anfänger-Themen 8
L Iterator Java Basics - Anfänger-Themen 1
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
OnDemand Iterator Interfacve Java Basics - Anfänger-Themen 23
S Iterator next() Nullpointer Java Basics - Anfänger-Themen 2
T Methoden Iterator über ArrayList Java Basics - Anfänger-Themen 3
W Iterator Java Basics - Anfänger-Themen 2
D Aufgabe: Stack mit Iterator Java Basics - Anfänger-Themen 8
R Mit iterator auf Element zugreifen Java Basics - Anfänger-Themen 2
T Collections Zugriff auf Elemente aus Iterator() Schleife Java Basics - Anfänger-Themen 4
P Casting Warning bei Iterator Java Basics - Anfänger-Themen 32
F Wie Werte einer ArrayList an einen 'Custom'-Iterator übergeben? Java Basics - Anfänger-Themen 2
J Iterator Java Basics - Anfänger-Themen 5
P ArrayList mit Iterator / Iterable ausgeben Java Basics - Anfänger-Themen 8
B Funktionsweise Iterator unklar Java Basics - Anfänger-Themen 7
A Datentypen Iterator von hinten nach vorne durchlaufen Java Basics - Anfänger-Themen 4
D Wie Iterator Remove implementieren? Java Basics - Anfänger-Themen 11
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
D Iterator schaltet nicht weiter?! Java Basics - Anfänger-Themen 5
A Problem mit Iterator Java Basics - Anfänger-Themen 2
B Türme von Hanoi - Iterator Java Basics - Anfänger-Themen 50
V Hilfe beim implementieren von Iterator Java Basics - Anfänger-Themen 5
W Collections Iterator<E> Java Basics - Anfänger-Themen 7
L Lokale Variable und Instanzvariable innerhalb Iterator Java Basics - Anfänger-Themen 8
W OOP problem mit iterator! -.- Java Basics - Anfänger-Themen 9
B Iterator und Collection Java Basics - Anfänger-Themen 11
ruutaiokwu Iterator oder .size ??? Java Basics - Anfänger-Themen 6
vandread Iterator zählt nicht hoch?! Java Basics - Anfänger-Themen 3
L Problem mit Iterator bzw. Sortierte Liste Java Basics - Anfänger-Themen 14
N HashMap mit Iterator durchlaufen Java Basics - Anfänger-Themen 11
R Iterator Liste, Verständnisproblem Java Basics - Anfänger-Themen 4
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
M Iterator Java Basics - Anfänger-Themen 15
L Implementation gesucht - ArrayList.iterator() Java Basics - Anfänger-Themen 3
M Eigener Iterator für LinkedList Java Basics - Anfänger-Themen 20
pun Iterator über ArrayList Java Basics - Anfänger-Themen 12
P Iterator.add() Java Basics - Anfänger-Themen 3
A For Schleife - Iterator wird null Java Basics - Anfänger-Themen 7
? Map und iterator Java Basics - Anfänger-Themen 11
0x7F800000 ungereimtheiten mit Iterator/ListIterator Java Basics - Anfänger-Themen 2
N "Dynamischer" Iterator Java Basics - Anfänger-Themen 21
J Iterator remove()? Java Basics - Anfänger-Themen 5
T Liste mit Iterator auslesen Java Basics - Anfänger-Themen 11
Kr0e Iterator Java Basics - Anfänger-Themen 2
D iterator instanziieren! Java Basics - Anfänger-Themen 11
M Der Umgang mit Iterator - Wie ein Objekt aus einer ArrayList Java Basics - Anfänger-Themen 2
J ArrayList mit Iterator Java Basics - Anfänger-Themen 3
A Für was Iterator ? Java Basics - Anfänger-Themen 3
M warum interface iterator verwendbar? Java Basics - Anfänger-Themen 5
O Iterator - Durchlauf "einschränken" bzw. steuern&q Java Basics - Anfänger-Themen 2
K Collection und Iterator Java Basics - Anfänger-Themen 7
Q Iterator next erstellen Java Basics - Anfänger-Themen 4
S iterator problem Java Basics - Anfänger-Themen 3
S Iterator --__-- Zugriff auf nächstes Element Java Basics - Anfänger-Themen 5
N Set + Iterator oder doch nur zu blöd API zu lesen Java Basics - Anfänger-Themen 32
R Java 5.0 neue For schleife Iterator was ist der fehler? Java Basics - Anfänger-Themen 5
N generische HashMap und Iterator Java Basics - Anfänger-Themen 2
R Iterator und HashMap Java Basics - Anfänger-Themen 10
G Probleme mit Iterator Java Basics - Anfänger-Themen 2
E umgededrehte if anweisung funzt nicht , iterator. Java Basics - Anfänger-Themen 2
A Iterator, wie funkioniert das richtig? Java Basics - Anfänger-Themen 6
S Iterator Schreibweise Java Basics - Anfänger-Themen 7
P ArrayList, iterator: Fehler in while Schleife Java Basics - Anfänger-Themen 2
T Iterator Java Basics - Anfänger-Themen 8
G Frage zur Iterator ? Java Basics - Anfänger-Themen 12
A Iterator auf anfang setzen Java Basics - Anfänger-Themen 5
blackfeet Bildfadeffekt (Halptransparenz) & iterator Java Basics - Anfänger-Themen 8
C Problem mit verschachteltem Iterator Java Basics - Anfänger-Themen 2
R Problem mit Iterator Java Basics - Anfänger-Themen 6
M Problem mit Iterator.remove() Java Basics - Anfänger-Themen 5
R Enumeration oder Iterator? Java Basics - Anfänger-Themen 2
J Klasse Iterator Java Basics - Anfänger-Themen 5
D unregelmäßige NullPointerException bei LinkedList Iterator? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben