3. AP 2 Praktikum Aufgabe 1

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;
}
}

8 thoughts on “3. AP 2 Praktikum Aufgabe 1

  1. Gerd

    …, aber welchen Zweck erfüllt die Angabe einer “Lösung” ohne die Angabe der “Aufgabe”?

  2. Basti

    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 ^^

  3. Daniel Post author

    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. 😉

  4. Basti

    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.

  5. Daniel Post author

    Hi,

    ja kommt gleich noch, wobei das absolut wenig war und sehr einfach!
    Die erste Aufgabe hat so eben ein Update erfahren!

Comments are closed.