F
FrageAnDAsForum
Gast
Wofür genau braucht man array list? Ich weiss, sie sind das gleiche wie arrays, aber sie können neue sachen aufnehmen und löschen. Doch ich verstehe nicht wann genau ich es brauchen kann...?
public class ArrayList
extends AbstractList
implements List, Cloneable, Serializable
ArrayList realisiert eine lineare Liste als dynamisches Array.
Wahlfreier Zugriff ist schneller als bei LinkedList, Einfügen und Löschen dagegen langsamer.
ArrayList ist besonders bei überwiegend lesendem Zugriff oder bei kleinen Listen vorzuziehen.
A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit...
Kontakt
public class ArrayList
extends AbstractList
implements List, Cloneable, Serializable
ArrayList realisiert eine lineare Liste als dynamisches Array.
Wahlfreier Zugriff ist schneller als bei LinkedList, Einfügen und Löschen dagegen langsamer.
ArrayList ist besonders bei überwiegend lesendem Zugriff oder bei kleinen Listen vorzuziehen.
A collection — sometimes called a container — is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data. Typically, they represent data items that form a natural group, such as a poker hand (a collection of cards), a mail folder (a collection of letters), or a telephone directory (a mapping of names to phone numbers).
- Zusammenfassen von Nachrichten mithilfe von Suchordnern - Outlook - Office.comErstellen eines Suchordners für wichtige E-Mail-Nachrichten
Sie können schnell nach allen wichtigen Nachrichten suchen. In Outlook werden wichtige Nachrichten durch Wichtigkeit: HochSchaltflächensymbol gekennzeichnet. Verwenden Sie einen Suchordner, um diese Nachrichten zusammenzufassen und immer problemlos finden zu können.
ALso ich nehm immer Arrays, wenn im Vorhinein weiß wieviel Elemente es gibt.
Bei jedem Spiel/Raster: schachBrett[8][8];
Arbeitseinteilung: personalEinteilung[ARBEITSTAGE][ÖFFNUNGSSTUNDEN];
sogar im chaotischen Lager: regal[MAXNR];
...
Das sind aber wenn du ehrlich bist doch eher die Ausnahmen.
Meistens speichert man in LIsten doch Veränderliche Anzahl von Elementen (z.B. Listener, Einträge, ...)
ResultSet
kannst auch in eine Collection packen....Ich würde das nicht als Ausnahme bezeichnen.
Wenn du zB eine Datenbankabfrage durchführst und das Ergebnis in ein Array packen willst, weißt du genau, wieviele Objekte dashat und damit, wie groß dein Array sein muss.Code:ResultSet
na dann fuehr mal n paar Standardoperationen auf einen Array aus.....Edit1
Was mal interessant wäre, ein paar Standardoperationen auf ein Array ausführen und dann gleiche/ähnliche Operationen auf eine Arrayliste. Und dann die Class-Datei decompilieren und schauen, was der Compiler so daraus gemacht hat.
kannst auch in eine Collection packen....
na dann fuehr mal n paar Standardoperationen auf einen Array aus.....
ansonsten schau dir einfach die implementierung von ArrayList an, dann siehste was da passiert
was sind denn Standard Operationen fuer dich ?Es geht mir weniger darum, was passiert, sondern viel mehr, was der Compiler mit meinem Quellcode anstellt.
So wie ja Standard-String-Operationen bereits mit einem StringBuilder-Objekt ausgetauscht werden ;-)
Hmm, warum das?Normalerweise verwendet man nie Arrays - auch wenn man z.B. eine Schnittstellendefinition [c]People[0..10][/c] hat, erstellt man kein [c]People[10][/c], sondern eine [c]List<People>[/c].
was sind denn Standard Operationen fuer dich ?
anscheinend [c]String s = "Hello" + "World"[/c], bei allen Api methoden von String kannst du nachschauen wie dies geschieht.
meine Aussage war daraufbezogen, dass diese "StandardOperationen" bei Arrays mehr als begrenzt sind, so im Sinne von nicht vorhanden - und wie gesagt - Api methoden (bzw implementierung) einfach in der Klasse nachschauen.
String namen[] = new String[10];
namen[0] = "Holger";
System.out.println(namen[0]);
List<String> namen = new ArrayList<String>();
namen.add("Holger");
System.out.println(namen.get(0));
Davon ausgegangen, dass du eine Klasse "Schachbrett" (wer schreibt eigentlich deutschen Code?) hast, welche intern ein zweidimensionales Array besitzt, lass ich aber wieder diese Regel gelten:Bei jedem Spiel/Raster: schachBrett[8][8];
Ausnahmen natürlich: die Implementierung solcher ArrayLists etc. selber
Arbeitseinteilung: personalEinteilung[ARBEITSTAGE][ÖFFNUNGSSTUNDEN];
List<String> namen = new ArrayList<String>(10);
namen.set(0, "Holger");
System.out.println(namen.get(0));
Davon ausgegangen, dass du eine Klasse "Schachbrett" (wer schreibt eigentlich deutschen Code?) hast, welche intern ein zweidimensionales Array besitzt, lass ich aber wieder diese Regel gelten: Ausnahme!
...
Warum nicht einfach objektorientiert Arbeiten :noe: ;(
Car[] parkingsite = new Car[MAXSITES]; // (Englisch, damit es auch Nicht-Warmduscher lesen können.)
performanz duerfte sich so ziemlich im "sowas-von-wurscht" bereich eher befinden. Code lesbarkeit ? mhm... ein einfaches [c]add[/c], [c]remove[/c], [c]indexOf[/c], [c]contains[/c] etc sind mit einem Array meiner ansicht nach NICHT besser lesbar.Wenn ich eine fixe Anzahl von Elementen (auch Objekte genannt) habe, dann ist das gute alte Array sicher noch das performateste und auch von der Code-lesbarkeit das sicherste.
Deine Aussage war "Normalerweise verwendet man nie Arrays" -
"auch wenn man z.B. eine Schnittstellendefinition People[0..10] hat, erstellt man kein People[10]"
Das halte ich für puren Nonsense.
Davon ausgegangen, dass du eine Klasse "Schachbrett" (wer schreibt eigentlich deutschen Code?) ...(
.. und bekommt dann ganz tolles Denglisch... *schauder*z.B. ich
bei einfachen Sachen wie Name, Vorname, Geburtstag, Geschlecht, Titel, Straße, Rezept, DKM gehts noch.
Lustiger wird wenn man so Sachen wie Untersuchender Arzt, Behandelnder Arzt, Hausarzt, Überweisender Arzt, Arzei, Arzeimittel, Medikament, Medikation, Behandlung... hat. Ehe man sich versieht, hat man paar Dutzend Variablen, die im Englischen irgendwie alle gleich klingen und ist man am Ende angekommen, weiss man nicht mehr, was man am Anfang genommen hat.
Sehe ich genau so! Im Englischen gibt es z.B. auch keine bloeden deutschen Umlaute, wo man dann bspw. ueberweisenderArtzt schreiben muesste.maki hat gesagt.:Bei proffessioneller SW Entwicklung nimmt man engl. Bezeichner, mit sehr seltenen Ausnahmen.
.. und bekommt dann ganz tolles Denglisch... *schauder*
Bei proffessioneller SW Entwicklung nimmt man engl. Bezeichner, mit sehr seltenen Ausnahmen.
Sehe ich genau so! Im Englischen gibt es z.B. auch keine bloeden deutschen Umlaute, wo man dann bspw. ueberweisenderArtzt schreiben muesste.
Sehe ich genau so! Im Englischen gibt es z.B. auch keine bloeden deutschen Umlaute, wo man dann bspw. ueberweisenderArtzt schreiben muesste.
Bytecode de-komp... was?Bytecode zu de-kompilieren, um zu sehen, wie ArrayList intern funktioniert, bringt rein gar nichts
Bytecode de-komp... was?
Vielleicht bringt es dir noch nichts, die Sources der Collection anzusehen, aber irgendwann kommt der Punkt, an dem du wissen willst, womit du da eigentlich arbeitest.![]()