Vererbung In offener Hash Tabelle einfügen

Butterbrot

Aktives Mitglied
Sehr geehrte Community,

ich implementiere zur Zeit eine offene Hash Tabelle und habe für das Einfügen an einer bestimmten Position folgende Methode geschrieben:
Java:
@Override
    public void insert(Contact c){
        int position = hash(c.email);
        table[position].add(position, c);
    }

Hierbei wird in der Hash Tabelle eine LinkedList (import java.util.LinkedList) namens "table" initialisiert und an einer bestimmten Stelle "position" eingefügt. Die Methode "hash" errechnet basierend auf der E-Mail Adresse die genaue Position, an der "Contact" eingefügt wird. Ich habe sämtliche Einfüge-Operatoren, der "LinkedList" ausprobiert und erhalte stets einen NullPointer und weiß nicht, woran das liegt. Ich bin für jeden Vorschlag dankbar und danke im Voraus.

Vollständige Klasse:

Java:
public class AuDOpenHashTable extends AuDHashTable {
  
    private LinkedList<Contact>[] table;
  
  
    public AuDOpenHashTable(int capacity) {
        super(capacity);
        this.table = new LinkedList[capacity];
    }
  
    @Override
    public void insert(Contact c){
        int position = hash(c.email);
       table[position].add(position, c);
    }
  
    @Override
    public void remove(Contact c) throws NoSuchElementException{
        int position = hash(c.email);
      
        if(table[position] != null){
            table[position].remove(c);
        }
        else{
            throw new NoSuchElementException();
        }
    }
  
    @Override
    public Contact getContact(String email){
        int position = hash(email);
        return table[position].element();
    }
}


public abstract class AuDHashTable {

    protected int capacity;
    public AuDHashTable(int capacity){
        this.capacity = capacity;
    }
  
    public abstract void insert(Contact c);
  
    public abstract void remove(Contact c);

    public abstract Contact getContact(String email);

    protected int hash(String s){
        int hash = 0;

        for(int i = 0; i < s.length(); i++){
            hash += s.charAt(i);
        }

        hash = hash % capacity;
        return hash;
    }

public static void main(String[] args) {

//        AuDClosedHashTable hashtabelle = new AuDClosedHashTable(3);
//        Contact eins = new Contact("hans.peter@web.de");
//        Contact zwei = new Contact("selina.meier@gmail.com");
//        Contact drei = new Contact("alexander.bauer@gmx.de");
      
//        hashtabelle.insert(eins);
//        hashtabelle.insert(zwei);
//        hashtabelle.insert(drei);
      
      
//        System.out.println(hashtabelle.isFull());
//        System.out.println(hashtabelle.getIndexOf("hans.peter@web.de"));
//        hashtabelle.remove(drei);
//        System.out.println(hashtabelle.isFull());
//        System.out.println(hashtabelle.getContact("selina.meier@gmail.com"));
      
        AuDOpenHashTable hashtabelle = new AuDOpenHashTable(3);
        Contact eins = new Contact("hans.peter@web.de");
        Contact zwei = new Contact("selina.meier@gmail.com");
        Contact drei = new Contact("alexander.bauer@gmx.de");
      
        hashtabelle.insert(eins);
        hashtabelle.insert(zwei);
        hashtabelle.insert(drei);
      
        System.out.println(hashtabelle.getContact("selina.meier@gmail.com"));
      
      
    }
 

Flown

Administrator
Mitarbeiter
Dein table Array ist zwar initialisiert und hat die Länge capacity, aber jeder Eintrag enthält null. Bei jedem Zugriff musst du überprüfen, ob an der Stelle im Array schon eine LinkedList eingefügt wurde.

Mal so ein Tipp: Deine Probleme, die du hier so postest würdest du selbst erkennen, wenn du einen Debugger benutzen würdest. Diesen würde ich die wärmstens Empfehlen.
 

Butterbrot

Aktives Mitglied
Naja, also sobald ich überprüfe ob an der Stelle null steht erscheint der selbe Fehler nochmal und den Debugger habe ich schon kennengelernt. Mir geht es nur um die genaue Methode, wie ich an der Stelle anstatt dem null etwas anderes einsetze.
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Er funktioniert ja eh nicht! Der Code sollte eher so aussehen:
Java:
@Override
public void insert(Contact c) {
   int position = hash(c.email);
   if (table[position] == null) {
     table[position] = new LinkedList<>();
   }
   table[position].add(c);
}
 

Butterbrot

Aktives Mitglied
Achso, das meintest du. Ich dachte man kann die null einfach so überschreiben und muss nicht jedesmal eine neue LinkedList einfügen. Danke.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Burny91 File.delete(file) geht nicht-Offener Stream aber WO? Java Basics - Anfänger-Themen 4
C Liste offener Fenster Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
bluetrix Hash Set hälfte entfernen Java Basics - Anfänger-Themen 7
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
J alternierendes Probing-Verfahren für Hash-Tabellen implementieren Java Basics - Anfänger-Themen 0
L Programmierung mit Hash Java Basics - Anfänger-Themen 3
J HashSet Methode contains liefert false (hash Methode überschrieben) Java Basics - Anfänger-Themen 3
B Denkanstoß - Hash ID für URL Java Basics - Anfänger-Themen 7
E Hash map Value Wert hochzuholen/ändern Java Basics - Anfänger-Themen 7
4a61766120617274697374 sha hash Java Basics - Anfänger-Themen 10
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
T Hash von doubles generieren Java Basics - Anfänger-Themen 5
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
E Hash Code dekodieren? Java Basics - Anfänger-Themen 20
T Hash Map Java Doc Einführung Java Basics - Anfänger-Themen 9
E Hash Map - Null Pointer Exception? Java Basics - Anfänger-Themen 3
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
L MD5 Hash berechnen Java Basics - Anfänger-Themen 2
P Casten Hash Map Java Basics - Anfänger-Themen 4
F Hash problem Java Basics - Anfänger-Themen 29
W automatischer password hash Java Basics - Anfänger-Themen 11
M Eigene Hash Funktion Java Basics - Anfänger-Themen 5
E Hash Map?? Java Basics - Anfänger-Themen 12
K eigene Hash-Datenstruktur Java Basics - Anfänger-Themen 2
J Hash-Maps / ArrayLists testen Java Basics - Anfänger-Themen 12
I Hash Wert von Dateien erzeugen Java Basics - Anfänger-Themen 2
H java hash map: cd ablageprogramm Java Basics - Anfänger-Themen 2
G Implementieren einer Hash-Datenstrucktur Java Basics - Anfänger-Themen 3
C MD5-Hash in Java Java Basics - Anfänger-Themen 14
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
Sonas814 ASCII-Tabelle Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J Autovervollständigung in einer Tabelle Java Basics - Anfänger-Themen 40
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
H Meine Tabelle befüllen in .fxml Java Basics - Anfänger-Themen 16
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
O Max Gewinn einer Tabelle Java Basics - Anfänger-Themen 12
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
krgewb ASCII-Tabelle Java Basics - Anfänger-Themen 12
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
J Werte aus einer Tabelle übernehmen Java Basics - Anfänger-Themen 2
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
W Befüllung einer Tabelle mit Checkbox, Trennung GUI und Model Java Basics - Anfänger-Themen 5
P ASCII-Tabelle Java Basics - Anfänger-Themen 5
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
M 1x1 Tabelle Abstände korrigieren Java Basics - Anfänger-Themen 2
P Wert aus Tabelle erhalten Java Basics - Anfänger-Themen 1
U Tabelle ändern und die Inhalte speichern Java Basics - Anfänger-Themen 9
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
N Erste Schritte MySQL Tabelle in JList darstellen Java Basics - Anfänger-Themen 1
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
H "Tabelle" Java Basics - Anfänger-Themen 4
B Tabelle mit Fremdschlüssel versehen Java Basics - Anfänger-Themen 0
M Primefaces tabelle bearbeiten Java Basics - Anfänger-Themen 4
M Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 10
M Erste Schritte Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 7
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
I Daten aus Arraylists in eine Tabelle übertragen Java Basics - Anfänger-Themen 2
B daten speichern in einer tabelle Java Basics - Anfänger-Themen 5
J Zuweisung/Tabelle Java Basics - Anfänger-Themen 6
M Werte aus Tabelle elegant zuordnen? Java Basics - Anfänger-Themen 2
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
M Tabelle aktualisiert sich erst nach mausklick Java Basics - Anfänger-Themen 4
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
J Tabelle aktuallisieren Java Basics - Anfänger-Themen 22
A Im Telefonbuch eine Tabelle ergänzen Java Basics - Anfänger-Themen 6
N Ergebnisse dynamisch in Tabelle schreiben Java Basics - Anfänger-Themen 3
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
C CSV-Tabelle Java Basics - Anfänger-Themen 21
M nur 1 wert in tabelle Java Basics - Anfänger-Themen 3
M Kreuztabellenabfrage an Tabelle anfügen Java Basics - Anfänger-Themen 3
M Wert aus Tabelle lesen Java Basics - Anfänger-Themen 4
M Überschrift wird nicht angezeigt Tabelle Java Basics - Anfänger-Themen 2
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
M Tabelle mit Buttons Java Basics - Anfänger-Themen 24
M JSON Datensätze aus Website in Tabelle Java Basics - Anfänger-Themen 17
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
D Auf Objekt in Tabelle zugreifen Java Basics - Anfänger-Themen 4
D Eclipse und Visual Editor - erzeugen einer Tabelle Java Basics - Anfänger-Themen 8
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
H JTable Überschrift der Tabelle wird nicht angezeigt Java Basics - Anfänger-Themen 5
F Aus Tabelle auslesen Java Basics - Anfänger-Themen 10
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
H ButtonGroup in Tabelle Java Basics - Anfänger-Themen 2
X Zeile in Tabelle kopieren und in andere einfügen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben