Re: aus der LinkedList auslesen



Andre said...
>
> >> for(int a = 0; a <=nummer;) {
> also ich hab das bei mir im Programm schon auf a<nummer verbessert gehabt,
> sorry. Habs falsch weitergegeben

Das war nicht das, was Lothar meinte.

Lothar meinte, dass man eine Liste besser so abläuft:

for (int t = 0; t<liste.size(); ++t){
final Object obj = liste.get(t);
System.out.println(String.valueOf(obj));
}

> > Du solltest ganz dringend an Deinem Programmierstil arbeiten:

> ich lern schon zwei Monate aber anscheinend wa es nicht effektiv genug.

Ich behaupte eher dein Tutor ist unfähig, bzw. du hast keinen.

> > - Wozu das hochzaehlen des Schleifenzaehlers innerhalb der^
> > for-Schleife und nicht - so wie es der Rest der Welt macht -
> > innerhalb des Schleifenaufrufs?

> ich wollte nicht das bei n.get(a) das a schon eins hochgezählt wird , das
> wohl wieder ein denkfehler ist, da wegen ++a a++ ich mir besser gedanken
> hätte machen sollen.

Ob du ++a oder a++ nimmst, ist an dieser Stelle nicht deine Hauptsorge.

In Sachen "Programmierstil" wäre dir gesagt:

Halte Variablen möglichst lokal.

Also statt:
public class BadExample{

public int n;

public void foo(){
doSomething();
doSomethingElse();
}

public void doSomething(){
while(whatever){
doSomething();
++n;
}
}

public void doSomethingElse(){
for (int t = 0; t<n; ++t){
//blafasel;
}
}

}

lieber sowas:

public class BadExample{

public void foo(){
int n = doSomething();
doSomethingElse(n);
}

public int doSomething(){
int n;
while(whatever){
doSomething();
++n;
}
return n
}

public void doSomethingElse(int n){
for (int t = 0; t<n; ++t){
//blafasel;
}
}
}

Damit sind die Methoden voneinander unabhängig.
Wie auch oben gezeigt arbeite lieber mit Methoden, die eine Wert zurück
geben, statt dich auf "globale" Variablen zu verlassen.

Also statt:

class BadExample{

List liste = new ArrayList();

public void readFrom(File f){
//buffered reader, etc..
String s = reader.readLine();
liste.add(s);
//..bla
}
}

lieber:

class GoodExample{

public List readFrom(File f){
List liste = new ArrayList();
//buffered reader, etc..
String s = reader.readLine();
liste.add(s);
//..bla
return liste;
}

}

Damit wird die readFrom(..) methode nämlich wiederverwendbar.

Außerdem: Schmeiß nicht alles gemischt in eine Liste, sondern kapsel
deine Daten.

Also statt:
liste.add(name);
liste.add(strasse);
liste.add(stadt);

lieber:

liste.add(new Addresse(name, strasse, stadt));

Und zur Kapselung:

class Addresse {
public String name;
public String strasse;
public String stadt;
public Addresse(String name, String strasse, String stadt){
this.name=name;
this.strasse=strasse;
this.stadt=stadt;
}
}

damit musst du dich nicht mehr darum kümmern, beim Lesen aus der Liste
die Reihenfolge zu beachten (nebst anderen Vorteilen).

etc..

Gruß,
-Wanja-


--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
.



Relevant Pages

  • Re: Liste mit References
    ... Du müsstest dazu die Aufrufe in eigene Threads einpacken und z.B. per Ereignis-Handler den Aufrufer über die Fertigstellung eines Arbeitsschrittes informieren. ... private string m_strCommand; ... In der addCommand Methode will ich eine Liste haben wie: ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: String parsen - Frage, wie am besten?
    ... Deine String erhältst kannst Du ihn nur sehr schwer verarbeiten. ... Token). ... Public TokenType As TokenTypes ... dann diese Liste erstellt hast sollte die List für bspw. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: MS-Access Liste auslesen und EMail senden
    ... Ich greife auf die Liste (z.B per liste.source oder ... Optional Emailfeldname As String = "") as ... Set db = CurrentDb ... Die Emailadressen sollten in der Tabelle nicht als Hyperlink gespeichert ...
    (microsoft.public.de.access)
  • Re: Bohrtisch mit Motoren =?ISO-8859-15?Q?f=FCr_X_Y__K=FC?= =?ISO-8859-15?Q?rzeste_W
    ... Erzeuge eine neue Liste mit 0 Pos ... Nehme einen PunktAktuell P-- Start ... |Ist Distanz kleiner als die Letzte, merke ich mir den Punkt zzg. ... Analyse String zu double, umgekehrt. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: methods without sideeffects (proposal)
    ... In V2 you add the NoSideEffect() attribute. ... so the code that called it shouldn't compile any longer because it ... > method has no side effects on the string class instance but it does have ... > that V1 of your product has a class A with method called DoSomething(). ...
    (microsoft.public.dotnet.languages.csharp)