indexOf gibt 2 zurueck
Nachdem Sie eine Zeit lang mit dem Testprogramm herumexperimentiert haben, um zu überprüfen, dass die Dinge richtig funktionieren, können Sie das vollständige Programm schreiben:
import java.util.* ; import java.io.*; class Eintrag { String name; String nummer; // Konstruktor Eintrag( String name, String nummer ) { this.name = name; this.nummer = nummer; } // Methoden public boolean equals( Object anderes ) { return name.equals( ((Eintrag)anderes).name ); } public String toString() { return "Name: " + name + " Nummer: " + nummer; } } class TelefonbuchApp { public static void main ( String[] args) throws IOException { Vector telefonbuch = new Vector( 10 ); telefonbuch.addElement( new Eintrag( "Amy", "123-4567") ); telefonbuch.addElement( new Eintrag( "Bob", "123-6780") ); telefonbuch.addElement( new Eintrag( "Hal", "789-1234") ); telefonbuch.addElement( new Eintrag( "Deb", "789-4457") ); telefonbuch.addElement( new Eintrag( "Zoe", "446-0210") ); String name; BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); System.out.print("Namen eingeben -->"); name = stdin.readLine().trim(); while( !name.equals( "quit" ) ) { int indexWo = telefonbuch.indexOf( new Eintrag( name, "") ) ; if ( indexWo >= 0 ) System.out.println( telefonbuch.elementAt( indexWo ) ) ; else System.out.println( name + " nicht gefunden" ) ; System.out.print("Namen eingeben -->") ; name = stdin.readLine().trim() ; } } }
Natürlich ist das ein kleines Beispiel und kein brauchbares Programm. Aber die Techniken, die es verwendet, werden in vielen in der Praxis erprobten Programmen eingesetzt. Prüfen Sie sorgfältig:
Vector
aus benutzerdefinierten Objekten verwendet wird.equals()
Methode geschrieben ist.
indexOf()
Methode funktioniert.indexOf()
Methode verwendet wird, um den Vector
zu durchsuchen.
indexOf()
Methode zu verwenden.
Sie mögen all das mehr als lästig denn nützlich betrachten,
da das vorherige Telefonbuch-Beispiel mit einem einfachen Array ausgezeichnet funktioniert hat.
Aber in größeren Programmen ist eine lineare Anordnung von Daten so gebräuchlich und die Operationen mit ihnen so häufig, dass die
Vector
-Klasse eine wertvolle Zeitersparnis ist.
Die Applikation wäre brauchbarer, wenn sie dem Anwender mehr Freiheit bei der Eingabe des gesuchten Namens geben würde. Zum Beispiel sollte der Anwender in der Lage sein nur Kleinbuchstaben oder Großbuchstaben einzugeben. Wo würden Sie die Änderung im Programm vornehmen, um das zu erlauben?