hallo,
ich habe ein Programm in dem Grammatiken (theoretische Informatik) definiert und geparst werden können. Intern nutze ich für die Regelmenge der Grammatik eine HashMap, welche größer ist als die Anzahl aller Regeln.
Sagen wir mal um den Faktor 1,25 .. bin mir gerade nicht sicher ^^
Mir ist nun aufgefallen, dass bei einer recht kleinen Grammatik mit <40 Regeln, es schon zu Kollisionen gekommen ist in der Hashmap und dabei eine Regel durch eine andere überschrieben wurde. Den Fehler beim Debuggen zu finden war wahrlich nicht leicht und ich frage mich wie ich das umgehen könnte, ich habe nun die Hashmap pauschale noch größer gemacht, aber das kann ja nicht Sinn der Sache sein. Kennt ihr vielleicht passendere Datenstrukturen um soetwas weniger aufgebläht Kollisionsfrei abzulegen?
ich habe ein Programm in dem Grammatiken (theoretische Informatik) definiert und geparst werden können. Intern nutze ich für die Regelmenge der Grammatik eine HashMap, welche größer ist als die Anzahl aller Regeln.
Sagen wir mal um den Faktor 1,25 .. bin mir gerade nicht sicher ^^
Mir ist nun aufgefallen, dass bei einer recht kleinen Grammatik mit <40 Regeln, es schon zu Kollisionen gekommen ist in der Hashmap und dabei eine Regel durch eine andere überschrieben wurde. Den Fehler beim Debuggen zu finden war wahrlich nicht leicht und ich frage mich wie ich das umgehen könnte, ich habe nun die Hashmap pauschale noch größer gemacht, aber das kann ja nicht Sinn der Sache sein. Kennt ihr vielleicht passendere Datenstrukturen um soetwas weniger aufgebläht Kollisionsfrei abzulegen?