Sep 29

Heute geht es nochmal um eine weitere Anwendungsmöglichkeit für List:

Ein Iterator ist ein von der Daten/Objektstruktur unabhängiges Hilfsmittel, mit dem man durch die einzelnen Elemente gehen (iterieren) kann. Zusätzlich bietet dieser noch einige Funktionen,  anhand dessen die Elemente überprüft und ausgegeben werden können.

Er kann mit einer Art Datenstrom verglichen werden, da die Richtung immer gleich ist. Er kann also nicht vor-und zurücklaufen. Wenn also z.B. ein Objekt zweimal angeschaut/bearbeitet werden soll, muss dieses entweder (z.B. durch Speichern in einer Hilfsvariable) vermerkt oder ein Iterator neu/nochmals initiert werden.

Ein Iterator eignet sich besonders für List, kann aber auch für andere Objektstrukturen (z.B. Set) angewendet werden.

List <String> a = new ArrayList <String>();
a.add(“Mailand”);
a.add(“Berlin”);
a.add(“Rom”);

Iterator <String> iterator_a = a.iterator(); // Anlegen eines Iterators, mit dem über die einzelnen Werte “gewandert” werden kann

while (iterator_a.hasNext())
// Überprüfung, ob ein weiteres Element existiert
System.out.print(iterator_a.next()+” “);
// Ausgabe des nächsten Elementes

Die Ausgabe lautet

Mailand Berlin Rom

Tagged with:
Sep 26

Man könnte meinen, mit der Umwandlung eines Arrays in eine List (oder umgekehrt), dass nun zwei voneinander unabhängige Datensammlungen existieren, aber nein, so ist es nicht. Beide werden so miteinander verknüpft, dass alle Datenänderungen bei einer Datensammlung sich auf die andere auswirkt

Hier ein Beispiel:

String a [] = {“Mailand”, “Berlin”, “Rom”};

List <String> b = Arrays.asList(a);

b.set(2,”Madrid”);
a[0]=”Paris”;

for (int i = 0; i<b.size(); i++)

System.out.print(b.get(i)+” “);

Die Ausgabe lautet:

Paris Berlin Madrid

Jede Datenänderung in einer Datensammlung wirkt sich automatisch auf die andere aus. Daher sind auch Erweiterung der List durch zusätzliche Einträge nicht möglich, da für das Array ja eine feste Größe definiert wurde, die nicht überschritten werden kann.

Tagged with:
Sep 23

Der eine oder andere mag schon gedacht haben; dass zwischen Arrays und List eigentlich kein riesig großer Unterschied besteht …. und recht hat er.

Deswegen kann man auch Listen in Arrays und Arrays in Listen umwandeln.

Die Komandos sind relativ einfach:

String a [] = {“Mailand”, “Berlin”, “Rom”};
List b <String>= Arrays.asList(a);
// Verwandlung eines Arrays in eine Liste

beziehungsweise

Object []c = b.toArray(); // Umwandlung der List in ein Array von Objekten
String [] d = new String[3];
d =b.toArray(d);
// Umwandlung der List in ein String-Array, hierfür muss aber die List explizit als String deklariert worden sein, ansonsten gibt es einen CompilerFehler (Type mismatch)

Tagged with:
Sep 20

Wir steigern den Schwierigkeitsgrad und nehmen zusätlich noch Comparator mit in unser Beispiel:

class Angestellter{

public static void main(String[] args) {

String a [] = {“Mailand”, “Berlin”, “Rom”};

NameSort ns = new NameSort();

Arrays.sort(a,ns); // Sortierung mit Comparator

System.out.println(Arrays.binarySearch(a,”Paris”, ns)); // Suche analog Sortierung mit Comparator

}

}


class NameSort implements Comparator <String>{

public int compare(String a ,String b){

return (b.compareTo(a));

}

}

Wichtig ist, immer gleichbleibend zu handeln, also entweder bei Sortierung und Suche den Comparator mit einzubeziehen oder diesem komplett wegzulassen.   Wie schon vor ein paar Tagen erwähnt funktioniert der Comparator bei primitiven Datentypen nicht.

Tagged with:
Sep 20

Was ist der Output des folgenden Codes?

public class Angestellter  {

static int newPersNr(Long x, Long y) { return 1; }
static int newPersNr(long… x) { return 2; }
static int newPersNr(Integer x, Integer y) { return 3; }
static int newPersNr(Number n, Number m) { return 4; }

static public void main(String[] Args){

short a =1;
int b =2;
long c=3;
Long d = new Long(4);

System.out.println(newPersNr(a,a));
System.out.println(newPersNr(b,b));
System.out.println(newPersNr(c,c));
System.out.println(newPersNr(d,d));

System.out.println(newPersNr(1,1));

System.out.println(newPersNr(a,b));
System.out.println(newPersNr(a,c));
System.out.println(newPersNr(a,d));
System.out.println(newPersNr(d,a));
System.out.println(newPersNr(c,a));
System.out.println(newPersNr(b,a));

}

}

Antwort/ answer
    Sep 18

    Was ist der Output folgenden Codes:

    class Angestellter{

    public static void getValue(Long a) {

    System.out.print(“LONG “);

    }

    public static void main (String … args){

    int i = 1;

    getValue(i);

    }

    }



    Antwort/ answer

    Sep 17

    Wir haben ja bereits Arrays.binarySearch(Obj,Suchstring) und das Ergebnis einer erfolgreichen Suche kennengelernt.

    Was passiert aber, wenn die Suche nicht erfolgreich ist, wie in unserem nächsten Beispiel:

    class Angestellter{

    public static void main(String[] args) {

    String a [] = {“Mailand”, “Berlin”, “Rom”};

    Arrays.sort(a);

    System.out.println(Arrays.binarySearch(a,”Paris”));

    }

    }

    Die Ausgabe hier wäre -3; ziemlich verwirrend, oder?

    Das minus-Zeichen zeigt an, das das Element nicht gefunden wurde.

    Da der Wert 0 schon bei einer erfolgreichen Suche zurückgegeben wird (falls das gesuchte Element an der ersten Stelle steht und somit den index 0 hat), wird von -1 a (für das mögliche Einfügen an erster Stelle) heruntergezählt.

    Tagged with:
    Sep 16

    Wie ist der Output des folgenden Codes?

    public class Angestellter  {

    static public void main(String[] Args){

    Angestellter a = new Angestellter();
    int PersNr =0;
    a.changePersNr(PersNr);
    PersNr = PersNr++;
    System.out.println(PersNr);

    }

    void changePersNr(int PersNr){

    PersNr++;

    }

    }

    Antwort/ answer
    Tagged with:
    Sep 15

    Für den Fall, dass der eine oder andere sich für Exceptions interessiert, in der englischen Version meines Blogs geht es so langsam mit dem Thema los, die deutsche Übersetzung kommt auch noch, aber das dauert noch ein bisschen. Für erste wollte ich hier noch ein paar andere Themen vorziehen.

    Tagged with:
    Sep 15

    Ihr habt es vermutlich schon gehört, aber trotzdem – wenn auch mit einiger Verspätung – auch von mir die Info, dass Oracle im Zuge der Sun-Übernahme nun auch die Titel angepasst hat. Hier gibt es noch eine Übersicht von Oracle, wie welcher Kurs unbenannt wurde. Der SCJP für die Version 1.5 ist nun der Oracle certified Professional, Java SE 5 Programmer,  eine Abkürzung gibt es wohl nicht :( . Bis jetzt ist nichts bekannt, dass sich auch Inhalte ändern. Falls dies so sein sollte, werdet ihr es hier an dieser Stelle erfahren.

    Tagged with:
    preload preload preload
    http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
    Webbhotell Top Blogs