Hash Tabelle einlesen und die Werte an ein Array übergeben

Status
Nicht offen für weitere Antworten.

Heiland

Bekanntes Mitglied
Hallo,
ich habe folgendes Problem: Ich habe eine Hashtabelle eingelesen aus einer *.tab Datei! Das funktioniert soweit auch ganz gut, allerdings enthält diese Tabelle lauter Strings! Ich möchte diese nun nacheinander in ein String array einlesen, aber das geht nicht. Da gibt es bei mir eine NullPointerException!

Ich benutze folgenden Code um sie in ein Array zu speichern (die for-Schleife dazudenken!)

Code:
vokabelnNeu.get(deutschHash2[j])

vokabelnNeu ist meine Hashtabelle!

THX
 

mic_checker

Top Contributor
Kontrollierst du auch jedes Mal den Rückgabewert ? Kann ja sein das null zurückgegeben wird. Ansonsten müsste es klappen wenn du das ganze noch castest (in deinem Fall in String).

Ansonsten poste den Code.
 

Heiland

Bekanntes Mitglied
Hier der gesamte code

Code:
 /**
* Sample application using Frame.
*
* @author
* @version 1.00 05/01/28
*/

import java.awt.*;
import java.awt.event.*;
import java.util.Hashtable;
import java.io.*;
import java.lang.ClassNotFoundException;

public class VokabelEditorFrame extends Frame
{
   String eingabe="";
   
   int eingabe_int=0;
   TextField vokabelanzahl;
   TextField deutsch[] = new TextField[eingabe_int];
   TextField latein[] = new TextField[eingabe_int];
   //String lateinHash[];
   //String deutschHash[];
   String lateinHash2[] = new String[eingabe_int];
   String deutschHash2[] = new String[eingabe_int];
   

                     
    Hashtable vokabeln = new Hashtable();
   
   
    /**
     * The constructor.
     */
     public VokabelEditorFrame()
     {
        setLayout( new GridBagLayout() );
                     
       
        final Insets insets = new Insets( 2, 2, 2, 2);
               
        MenuBar menuBar = new MenuBar();
        Menu menuFile = new Menu();
       
        MenuItem menuFileExit = new MenuItem();
        MenuItem menuFileSave = new MenuItem();
        MenuItem menuFileAbfragen = new MenuItem();
        
        vokabelanzahl = new TextField("1");
        
        add( vokabelanzahl, new GridBagConstraints( 1, 0, 1, 1, 1.0, 1.0,
           GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, insets, 0, 0) );
           
           
           
        vokabelanzahl.addKeyListener(new KeyAdapter()
        {
           public void keyPressed(KeyEvent e)
           {
              if(e.getKeyCode() == KeyEvent.VK_ENTER)
              {
                  eingabe = vokabelanzahl.getText();
                 eingabe_int = Integer.parseInt(eingabe);
                 
                 System.out.println("making list...");
                 System.out.println("Anzahl: "+eingabe_int);
                 
             
                 latein = new TextField[eingabe_int];
                 deutsch = new TextField[eingabe_int];
                 
                 GridBagConstraints constraintsDEUTSCH = new GridBagConstraints( 0, 0, 2, 1, 1.0, 1.0,
                       GridBagConstraints.EAST, GridBagConstraints.VERTICAL, insets, 0, 0 );
                 
                 GridBagConstraints constraintsLATEIN = new GridBagConstraints( 0, 0, 2, 1, 1.0, 1.0,
                       GridBagConstraints.WEST, GridBagConstraints.VERTICAL, insets, 0, 0 );
                 
                 
                 for(int i = 0; i <eingabe_int; i++)
                 {
                      latein[i] = new TextField("latein");
                      deutsch[i]= new TextField("deutsch");
                      constraintsLATEIN.gridy = i+1;
                      constraintsDEUTSCH.gridy = i+1;
                      add(latein[i], constraintsLATEIN);
                      add(deutsch[i], constraintsDEUTSCH);
                 
                      repaint();
                 }
               
                 validate();
              }
            }
        });
       
        Label anzahl = new Label("Wieviele Vokabeln möchten Sie eingeben?");
        add(anzahl, new GridBagConstraints( 0, 0, 1, 1, 1.0, 1.0,
               GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, insets, 0, 0));
       
        menuFile.setLabel("File");
        menuFileExit.setLabel("Exit");
        menuFileSave.setLabel("speichern...");
        menuFileAbfragen.setLabel("abfragen!");
       
        menuFileSave.addActionListener
        (
           new ActionListener()
           {
              public void actionPerformed(ActionEvent e)
              {
                 String lateinHash[] = new String[eingabe_int];
                 String deutschHash[] = new String[eingabe_int];
                 
                 for(int i=0; i<eingabe_int; i++)
                 {
                    lateinHash[i] = latein[i].getText();
                    deutschHash[i] = deutsch[i].getText();
                    System.out.println("prepare to save...");
                   
                   
                    System.out.println("making Hash-Tab...");
                    vokabeln.put(lateinHash[i], deutschHash[i]);
                    vokabeln.put(deutschHash[i], lateinHash[i]);
                    System.out.println("finished!");
                 }
                 try
                 {
                    FileOutputStream ausgabeDatei = new FileOutputStream("vokabel.tab");
                    ObjectOutputStream ausgangsStrom = new ObjectOutputStream(ausgabeDatei);
                    ausgangsStrom.writeObject(vokabeln);
                    ausgabeDatei.close();
                 }
                 catch (IOException fehler)
                 {
                    fehler.printStackTrace();
                    System.out.println("ERROR CREATING HASH TAB!");
                 }
              }
           }
           
        );
        
        menuFileAbfragen.addActionListener
        (
        	new ActionListener()
        	{
        		public void actionPerformed(ActionEvent e)
        		{
        			Abfrage();
        		}
        	});
       
        // Add action listener.for the menu button
        menuFileExit.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    VokabelEditorFrame.this.windowClosed();
                }
            }
        );
       
        menuFile.add(menuFileAbfragen);
        menuFile.add(menuFileSave);
        menuFile.add(menuFileExit);
       
        menuBar.add(menuFile);
       
        setTitle("VokabelEditor");
        setMenuBar(menuBar);
        setSize(new Dimension(900, 700));
       
        // Add window listener.
        this.addWindowListener
        (
            new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    VokabelEditorFrame.this.windowClosed();
                }
            }
        );
    }
    
    //Hauptprogramm starten
    public void Abfrage()
    {
    	String vokabel_eingabe="";
    	//String lateinHash2[] = new String[eingabe_int];
        //String deutschHash2[] = new String[eingabe_int];
    	BufferedReader in = new BufferedReader(new InputStreamReader (System.in));
    	
    	Hashtable vokabelnNeu = null;
    	
 
		
		// die Vokabeln aus der Datei "vokabel.tab" wieder einlesen
		try
		{
			FileInputStream eingabeDatei = new FileInputStream("vokabel.tab");
			ObjectInputStream eingangsStrom = new ObjectInputStream(eingabeDatei);

			try
			{
				vokabelnNeu = (Hashtable) eingangsStrom.readObject();
			}
			catch (ClassNotFoundException fehler)
			{
				fehler.printStackTrace();
			}

			eingabeDatei.close();
		}
		catch (IOException fehler)
		{
			fehler.printStackTrace();
		}
		
		
		//Abfrage
		for(int j=0; j<eingabe_int; j++)
		{
			
			System.out.println(vokabelnNeu.get(deutschHash2[j])+"\n");
			try
			{
				vokabel_eingabe=in.readLine();
			    if(eingabe.equals(vokabelnNeu.get(lateinHash2[j])))
		        {
			        System.out.println("Richtiiig!\n");
				}
				else
				{
				    System.out.println("Falsch!\n");
				}
		    }
		    catch (IOException ex)
			{
				System.out.println(ex.getMessage());
			}
		}

    	
    }
         

   
    /**
     * Shutdown procedure when run as an application.
     */
    protected void windowClosed()
    {
       
       // TODO: Check if it is save to close the application
       
        // Exit application.
        System.exit(0);
    }
}
 

Heiland

Bekanntes Mitglied
hab mir das mal überlegt: er kanns ka gar nicht finden, weil da gar nichts drin ist in deutschHash!
Deshalb brauch ich ja erst mal ne Methode, um aus der Hashtabelle alle Strings in dieses Array zu schreiben! ( In der Hash Tabelle sind schon Strings drinnen!)

Aber ich weiß nicht wie das gehen soll!
 

mic_checker

Top Contributor
Deshalb gibt er dir ja die NullPointerException (u. deswegen solltest du den Rückgabewert überprüfen - der wird wohl null sein).

Du kannst doch die Hashtabelle durchgehen und die jeweiligen Strings einfach im Array speichern. Dafür könntest du nen Iterator verwenden, weiss jetzt aber nicht ob du das so willst...
 

foobar

Top Contributor
Code:
Hashtable hash = new Hashtable();
hash.put("1","1");
Iterator it = hash.keySet().iterator();
while (it.hasNext())
{
  Object key = it.next();  
System.out.println("key " + key +" value " + hash.get( key ));
}

Guck dir ausserdem mal die Methoden keySet() entrySet() und values() an.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Hash-Tabelle Allgemeine Java-Themen 2
E Hash Size (Sha 256) Allgemeine Java-Themen 5
Kirby.exe Hash Map Allgemeine Java-Themen 24
J Passwort Verschlüsselung hash Allgemeine Java-Themen 2
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
T Hash von *.class-Datein überprüfen Allgemeine Java-Themen 1
W Passwort Clientseitig sicher ablegen ohne Hash Allgemeine Java-Themen 2
R Großes Hash-Set erzeugen Allgemeine Java-Themen 12
R MD5-Hash eines Strings bestimmen Allgemeine Java-Themen 2
J Hash aus Verzeichniss generieren Allgemeine Java-Themen 2
S Hash-Bereiche erstellen die gleichverteilt sind..? Allgemeine Java-Themen 8
J MD5-Hash einer Datei Allgemeine Java-Themen 4
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
F Passwort hash Allgemeine Java-Themen 8
M@rk MD5 Hash Allgemeine Java-Themen 3
C HASH Algorithmus 2 Strings ergeben das Selbe. Allgemeine Java-Themen 2
minzel Hash-Algorithmus Allgemeine Java-Themen 9
M Hash Tables Allgemeine Java-Themen 5
I hash-algorithmus Allgemeine Java-Themen 9
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
T 4x4 Tabelle als Bitboard darstellen Allgemeine Java-Themen 5
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
S 2-spaltige Ausgabe als Tabelle ausgeben Allgemeine Java-Themen 12
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
Iron Monkey Spalte der Tabelle abwechselnd färben Allgemeine Java-Themen 8
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
K HTTP Auslesen einer Tabelle Allgemeine Java-Themen 8
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
R Datum in Excel Tabelle eintragen Allgemeine Java-Themen 6
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
K LibreOffice Tabelle Dateien im Format .ods bearbeiten Allgemeine Java-Themen 2
M In einer Tabelle rechnen Allgemeine Java-Themen 12
D Tabelle umwandeln Allgemeine Java-Themen 12
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
nrg JDOM Tabelle lesen Allgemeine Java-Themen 6
S Javascript & MSAccess Tabelle Allgemeine Java-Themen 5
Weiti Programm zum erstellen einer tabelle aus textdateien Allgemeine Java-Themen 24
R Tabelle - Berechnung der "Zeilenart" Allgemeine Java-Themen 2
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
A Text durchgestrichen in einer Tabelle darstellen Allgemeine Java-Themen 2
D Spaltenbereite einer Tabelle Allgemeine Java-Themen 2
J Leerer Spalteninhalt in einer Tabelle in JSP Allgemeine Java-Themen 5
M Datum in Tabelle formatiert ausgeben Allgemeine Java-Themen 3
P Datenbank Tabelle spiegeln Allgemeine Java-Themen 22
G Probleme mit dem erstellen einer Tabelle Allgemeine Java-Themen 6
G Tabelle in ein Array schreiben Allgemeine Java-Themen 3
S Excel Tabelle Allgemeine Java-Themen 8
G HTML Tabelle auslesen Allgemeine Java-Themen 8
J Problem mit dem aktualisieren der Tabelle Allgemeine Java-Themen 8
B Tabelle. bei Wertänderung was bestimmtes machen Allgemeine Java-Themen 3
S Werte in Tabelle einfügen! Allgemeine Java-Themen 9
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
M Daten in Excel Tabelle schreiben? Allgemeine Java-Themen 7
D iText: Tabelle in Footer einfügen Allgemeine Java-Themen 6
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
L Datein einlesen. Allgemeine Java-Themen 5
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
F Datei in String-Array einlesen Allgemeine Java-Themen 8
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
R .txt Datei einlesen und auf der Konsole ausgeben lassen Allgemeine Java-Themen 11
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
J Input/Output Word Datei einlesen, verarbeiten und abspeichern Allgemeine Java-Themen 3
K RTF-Dokumente einlesen Allgemeine Java-Themen 1
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
J Java 8 Datei einlesen Allgemeine Java-Themen 1
S Handschrift einlesen & darauf reagieren OCR Allgemeine Java-Themen 2
K Input/Output String aus einer Datei einlesen und in anderer Datei speichern Allgemeine Java-Themen 20
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
R Datei einlesen mit Win7 Allgemeine Java-Themen 8
E Best Practice LaTeX aus Textdateien einlesen und bearbeiten Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben