Hinweis: Die Lösung der Aufgabe wurde von mir am 05.05.09 um 16:30 Uhr aktualisiert!
Hier die Lösung zu der ersten Aufgabe im dritten AP 2 Praktikum:
Die Aufgabenblätter sind hier zu finden: http://www.gm.fh-koeln.de/~ehses/ap/index.html
public class Table implements ITable {
private static final int DEFAULT_INITIAL_SIZE = 4;
private int size;
private Entry[] data = new Entry[DEFAULT_INITIAL_SIZE];
private void pruefeKey(Object key) {
if(key==null){
throw new NullPointerException(“key darf nicht 0 sein!”);
}
}
public int size(){
return size;
}
public Object put(Object key, Object value){
pruefeKey(key);
if(size>=data.length){
Entry[] newdata = new Entry[data.length*2];
for(int j =0; j<data.length; j++){
newdata[j]=data[j];
}
data=newdata;
}
for(int i =0;i<size; i++){
if(data[i]!=null){
if(data[i].getKey().equals(key)){
return data[i].setValue(value);
}
}
}
data[size++]= new Entry(key, value);
return null;
}
public Object get(Object key){
pruefeKey(key);
for(int i =0; i<size; i++){
if(data[i].getKey().equals(key)){
return data[i].getValue();
}
}
return null;
}
public boolean containsKey(Object key){
pruefeKey(key);
for(int i =0; i<size; i++){
if(data[i]!=null){
if(data[i].getKey().equals(key)){
return true;
}
}
return false;
}
public Object remove(Object key){
pruefeKey(key);
for(int i =0; i<size; i++){
if(data[i].getKey().equals(key)){
Object temp = data[i].setValue(null);
for(int j =i; j<data.length; j++){
if(j+1!=data.length){
data[j]=data[j+1];
}
}
size- -;
return temp;
}
}
return null;
}
public Object[] keys(){
Object[] keys = new Object[size];
for(int i =0; i<keys.length; i++){
if(data[i]!=null){
keys[i]=data[i].getKey();
}
}
return keys;
}
}
…, aber welchen Zweck erfüllt die Angabe einer “Lösung” ohne die Angabe der “Aufgabe”?
Hi,
die Leute die an der Fachhochschule Köln Campus Gummersbach studieren, brauchen nicht die Angabe der Aufgabe, da sie das Aufgabenblatt haben!
Allerdings wegen der Vollständigkeit halber hier der Link: http://www.gm.fh-koeln.de/~ehses/ap/index.html
Hey danke für die Lösung hat mir bei meiner Lösung geholfen.
Nur ist hier das selbe Problem aufgeaucht wie bei mir.
Der testNullKey schlägt immer mit der NullPointerException key darf nicht 0 sein! fehl.
Hast du noch ne Idee woran das liegen kann?
g Basti
P.S. size- scheint nen Tippfehler zu sein ^^
Hi,
mit size- war kein Tippfehler WordPress setzt – – als – um, wenn man kein Leerzeichen dazwischen setzt, habe es nun korrigiert!
Der testNullKey schlägt bei mir allerdings nicht mit einer NullPointerException fehl, sondern läuft einwandfrei durch!
Wahrscheinlich liegt dein Fehler noch woanders. 😉
Hi,
gut zu wissen das mit dem –.
Hab jetzt mal spaßeshalter deine Klasse genommen und der Test schlägt immer noch fehl. Vermute inzwischen das es evt das der IDE liegt.
http://wordpress.org/extend/plugins/wp-syntax/
kann ich dir empfehlen wegen diesen komischen wordpress änderungen…
Hi,
stellst du auch noch die Lösungen für die 2. Aufgabe online?
Hi,
ja kommt gleich noch, wobei das absolut wenig war und sehr einfach!
Die erste Aufgabe hat so eben ein Update erfahren!