PDA

View Full Version : [Frage] Test Vorbereitung


TheButcher
18-06-2004, 15:29
Also es kommt ganz sicher die Klassen
ArrayList, Collection, Iterator
Kann jemand posten wie man eine Collection erzeugen kann,
ich werde jetzt probieren, wenn es klappt poste ich die Klassen

SmallSouldier
18-06-2004, 15:54
Soweit ich weiß ist es egal was für eine Collection Class du verwendest.
Mir ist der Vector sehr Sympathisch da ich ihn in der 4.Runde verwendet hab.

zb.:


Vector name = new Vector(9, 10);
Object obj = new Object();
name.add(obj); //hinzufügen
Object test = (Object)name.get(0)
name.remove(obj); //entfernen ;-)


Der Vector hat einen Index in etwas so wie ein Array.
Mit vector.get(index) bekommst du das Objekt an der Stelle. Casten nicht vergessen!!!
Als quasi Iterator kann man einfach eine Integer Variable als Zähler verwenden.

Spiel dich ein bisschen damit und es wird schon klappen. Wie gesagt: Mir is der Vector sympathisch aber welche du nimmst ist glaub ich deine Sache.

a9bejo
18-06-2004, 16:14
Also es kommt ganz sicher die Klassen
ArrayList, Collection, Iterator
Kann jemand posten wie man eine Collection erzeugen kann,
ich werde jetzt probieren, wenn es klappt poste ich die Klassen

Collection und Iterator sind keine Klassen, sondern Interfaces.

Das Collections Framework von Java besteht aus einer Reihe solcher Interfaces.

In diesen Interfaces sind eine oder mehrere Methoden definiert, z.b steht im interface java.util.Collection (unter anderem)

public Object get(int index);

und im Interface java.util.List:

public void add(Object obj);



java.util.ArrayList ist eine konkrete Implementierung des Interfaces java.util.List, welches wiederum das Interface java.util.Collection implementiert. Damit das klappt, müssen hier die methoden add(Object) und get(int) aus dem List/Collection interfaces implementiert werden.

Eine ArrayList ist also eine Collection.

Man kann zum Beispiel schreiben:


Collection c = new ArrayList();
c.add("A");


oder:


List l = new ArrayList();
l.add("A");
String s = (String) l.get(0);


achtung: das hier geht nicht:


Collection c = new ArrayList();
c.add("A");
String s = (String) l.get(0); //Fehler, weil get(int) in List deklariert wurde.


Im letzten Fall zeigt die referenz c zwar auf eine ArrayList, die ja eine Methode get enthalten muss. Der compiler weiss aber nicht, das diese Collection auch eine Liste ist.

Man könnte dem Compiler aber sagen, das dies der Fall ist:


...
String s =(String) ((List) c).get(0);



im package java.util gibt es eine ganze Reihe von Implementierungen für die einzelnen Interfaces. Die am häufigsten verwendeten sind ArrayList und HashMap (viele verwenden auch noch die alten Versionen dieser Klassen, Vector und Hashtable. Davon ist aber abzuraten).
Je nach Anwendungsfall kann es aber auch klüger sein, zum beispiel eine LinkedList oder eine TreeMap zu benutzen. Mehr dazu gibt es dann im zweiten Semester in 'Algorithmen und Datenstrukturen I'

Man kann sich auch ganz leicht eigene Implementationen von Collection klassen schreiben. Hierfür braucht man lediglich so einen Code zu schreiben:


public class MyCollection implements java.util.Collection{

}


und dann den Fehlermeldungen des Compilers gehorchen. Der verlangt nämlich dann, das alle Methoden die in dem Interface deklariert wurden, in der neuen Klasse implementiert werden.

im Detail kann man sich das hier durchlesen:

http://java.sun.com/docs/books/tutorial/collections/

lg, benjamin ferrari

TheButcher
18-06-2004, 17:33
Das ist sehr nützlich, vielen Dank :thumb:

TheButcher
19-06-2004, 00:56
@SmallSouldier
Kannst du bitte sagen welche Beispiel Nr hast du mit dem Klasse Vektor gemacht

SmallSouldier
19-06-2004, 12:28
Das war 4114 virus.
Anbei meine Lösung. ich hoffe das hilft dir!

mfG, Small

songoku
19-06-2004, 12:43
Kann man jetzt eigentlich irgendwelche Unterlagen zum Test verwenden oder nicht?
Und wo genau ist der Test, dort wo auch die Abgabegespräche mit den Tutoren waren?

Und gibts auf dem Linux dort eigentlich einen Editor mit ein bisschen GUI? Sodass man nur auf File->Save as... zum abspeichern gehen muss und sich nicht dutzende Kommandos merken muss? :D

SmallSouldier
19-06-2004, 13:40
unterlagen darf man verwenden solange sie nicht elektronisch sind (Handy, Notebook, etc.)

Laut E-prog Site: Der Übungstest dauert 45min und wird direkt auf den Rechnern des Inormatiklabors durchgeführt.
Also bin ich mir zu 99,9999% oder sagen wir 100% sicher: dort wo die Abgabegespräche waren.

Als Editor gibts auf jedenfall Emacs. War gestern dort und hab mich mit dem Informatiklabor vertraut gemacht.
Obs noch andere IDE´s suf den Rechnern gibt weiß ich nicht.

Ich weiß nur dass eine menge leute gesagt haben man soll sich die Arbeitsumgebung mal ansehen.

mfG, Small

tobias
19-06-2004, 13:50
Und gibts auf dem Linux dort eigentlich einen Editor mit ein bisschen GUI? Sodass man nur auf File->Save as... zum abspeichern gehen muss und sich nicht dutzende Kommandos merken muss?

nedit (http://www.nedit.org/)
Erreichbar über das "Programming"-Menü (oder wie auch immer das heißt) oder einfach "nedit" in einem Terminalfenster eintippen.
nedit kann Highlighting (allg. Java-Syntax und Klammern wenn markiert) und ist sowohl mit der Maus (Drag & Drop) als auch mit der Tastatur (Tastaturbefehle ähnlich wie unter Windows) einfach zu bedienen.

Tobias

che
21-06-2004, 11:58
passend zum thema testvorbereitung:

wie shcauts mit den ausdrücken aus? wer weiß die lösung?

public class ausdrücke {
int a; double b; short c; byte d; long e; float f; char g; boolean h; String i;
..}

(a<++b)
i.charAt(b)
~a
f%f
i+i
a>>3

thx

TheButcher
21-06-2004, 14:14
i.charAt(b) // nur das ist falsch