Hallo!
In einem Datenbankprogramm (Fotoverwaltung) habe ich ein ArrayList mit sehr großem Umfang (ca. 2,5 MB Daten). Dieses ist in einer speziellen Klasse angelegt, in der ich auch alle weiteren Programmdaten (Pfade, Konfigdaten etc.) als statische Datentypen speichere. Aus dem genannten ArrayList möchte ich nur lesen.
Bisher hatte ich zu dem ArrayList keinen Getter, sondern nur eine Methode, die mir ein konkretes Element aus der Liste zurückliefert.
Das sieht etwa so aus:
public static Bild getBild( int index) {
if( index >= 0 && index < bilder.size()) {
return bilder.get( index);
}
else {
return null;
}
}
Nun überlege ich, ob ich nicht einfach eine Get-Methode einrichte, die das ArrayList zurückliefert (also: return bilder), so dass sich jede andere Klasse das gesamte ArrayList holen und dann darauf operieren kann.
Meine Frage wäre hierbei: Welche der beiden Varianten ist performanter, bzw. gibt es überhaupt einen nennenswerten Unterschied? Bzw. was ist hier der "Java-Standard"? Immer alles über die Datentyp-Getter regeln?
Die alte Variante finde ich irgendwie sicherer, weil von vorn herein sichergestellt ist, dass nur gelesen wird (das ArrayList wird nicht "aus der Hand gegeben"). Auf der anderen Seite sind das beim Suchen von Objekten dann aber extrem viele Methodenaufrufe. Hat jemand eine Idee welche Variante besser wäre?
Vielen Dank
In einem Datenbankprogramm (Fotoverwaltung) habe ich ein ArrayList mit sehr großem Umfang (ca. 2,5 MB Daten). Dieses ist in einer speziellen Klasse angelegt, in der ich auch alle weiteren Programmdaten (Pfade, Konfigdaten etc.) als statische Datentypen speichere. Aus dem genannten ArrayList möchte ich nur lesen.
Bisher hatte ich zu dem ArrayList keinen Getter, sondern nur eine Methode, die mir ein konkretes Element aus der Liste zurückliefert.
Das sieht etwa so aus:
public static Bild getBild( int index) {
if( index >= 0 && index < bilder.size()) {
return bilder.get( index);
}
else {
return null;
}
}
Nun überlege ich, ob ich nicht einfach eine Get-Methode einrichte, die das ArrayList zurückliefert (also: return bilder), so dass sich jede andere Klasse das gesamte ArrayList holen und dann darauf operieren kann.
Meine Frage wäre hierbei: Welche der beiden Varianten ist performanter, bzw. gibt es überhaupt einen nennenswerten Unterschied? Bzw. was ist hier der "Java-Standard"? Immer alles über die Datentyp-Getter regeln?
Die alte Variante finde ich irgendwie sicherer, weil von vorn herein sichergestellt ist, dass nur gelesen wird (das ArrayList wird nicht "aus der Hand gegeben"). Auf der anderen Seite sind das beim Suchen von Objekten dann aber extrem viele Methodenaufrufe. Hat jemand eine Idee welche Variante besser wäre?
Vielen Dank