hallo!
mal eine theoretische frage:
ich möchte auf benutzereingaben gewisser zeichen reagiern. zb benutzer gibt ein 'h' und dieses wird rot. ich hab mir überlegt dass ich jetzt die Color in einem Array speichern könnte und so konstanten (in bezug komplexität) zugriff auf die farbe hätte.
also so:
jetzt aber meine frage, wie effizient ist dies beim speicherverbrauch. ein array ist ja im grunde eine liste mit referenzen auf speicherbereiche. werden jetzt bei einem Array der länge 50 -> 50 Speicherbereiche reserviert oder nur eine liste erstellt die platz für 50 einträge bietet?
also beispiel:
ein Speicher mit 100 speicherzellen. angenommen ein Object braucht 1 speicherzelle.
es wird
Object[] b = new Object[50]
erzeugt
und in diesem array 3 objekte gespeichert.
braucht das array nun 50 speicherzellen? sprich die hälfte des speichers. oder nur die 3 speicherzellen die die objekte benötigen?
danke und mfg
chris
mal eine theoretische frage:
ich möchte auf benutzereingaben gewisser zeichen reagiern. zb benutzer gibt ein 'h' und dieses wird rot. ich hab mir überlegt dass ich jetzt die Color in einem Array speichern könnte und so konstanten (in bezug komplexität) zugriff auf die farbe hätte.
also so:
Code:
Color[] bucket = new Color[Character.MAX_VALUE];
bucket['h'] = Color.red;
jetzt aber meine frage, wie effizient ist dies beim speicherverbrauch. ein array ist ja im grunde eine liste mit referenzen auf speicherbereiche. werden jetzt bei einem Array der länge 50 -> 50 Speicherbereiche reserviert oder nur eine liste erstellt die platz für 50 einträge bietet?
also beispiel:
ein Speicher mit 100 speicherzellen. angenommen ein Object braucht 1 speicherzelle.
es wird
Object[] b = new Object[50]
erzeugt
und in diesem array 3 objekte gespeichert.
braucht das array nun 50 speicherzellen? sprich die hälfte des speichers. oder nur die 3 speicherzellen die die objekte benötigen?
danke und mfg
chris