# Generischer Iterator



## AlexD (8. Mai 2015)

Hallo zusammen, 

nach ein paar Stunden die ich jetzt hier schon sitze! wende ich mich mal ans Forum. 

Wir müssen zu zwei Klassen, die wir bereits für die letzte Aufgabe abgeben mussten, Iterable implementieren und zwar mit einer Inneren Klasse. 

Dazu soll die Next() Methode eine NoSuchElementException werfen 
Remove muss nicht implementiert aber bereitgesstellt werden, mit einer UnsupportedOperationException.


Mein Code bis jetzt 

Klasse1

```
package augabenblatt5.Aufg1;

import java.util.Iterator;
import java.util.NoSuchElementException;

/**
 *
 * @author Alex
 */
public class Feld<T> {
  private T[] feld;

  public Feld(int size) {
    @SuppressWarnings("unchecked")
      T[] f = (T[])new Object[size];
    feld = f;
  }

   public class Iterator<T> implements java.util.Iterator<T> {
int pos = 0;

@SuppressWarnings({ "unchecked", "rawtypes" })
Feld paar;

       

public boolean hasNext() {
return this.pos < paar.size();
}

@SuppressWarnings("unchecked")
public T next() throws NoSuchElementException {
if (hasNext()) {
return (T) paar.get(this.pos++);
} else {
throw new NoSuchElementException();
}
}

public void remove() {
throw new UnsupportedOperationException();
}
    }

public Iterator<T> iterator() {
return new Iterator<T>();
}
  
  public int size() {
    return feld.length;
  }

  public T get(int i) {
    return feld[i];
  }

  public T set(int i, T e) {
    T result = feld[i];
    feld[i] = e;
    return result;
  }
}
```

Klasse 2

```
package augabenblatt5.Aufg1;

import java.util.Iterator;
import java.util.NoSuchElementException;

/**
 *
 * @author Alex
 */
public class Paar <T> {
        
       private T first;
       private T second;
       
       public Paar (T first, T second){
       
           this.first = first;
           this.second = second;
    
       
           
           
       }
    
       public T first(){
       return this.first;
       }
       
       public T second()
       {
       return this.second;
       }
       
       
       public void swap(){
       T third;
       
       third = this.second;
       this.second = this.first;
       this.first = third;
       
       }
       
       
       public String toSring(){
       
       return "("+this.first+","+this.second+")";
       }

    
       
}
```

Klasse 3

```
package augabenblatt5.Aufg1;

import java.util.NoSuchElementException;

/**
 *
 * @author Alex
 */
public class PaarFeld4 <T>{
    
    private Feld <T> first,second;
    private int length;
    
    public PaarFeld4(Feld<T> first,Feld <T> second){
    
        this.length = (first.size() < second.size() ? first.size() : second.size());
        this.first = first;
        this.second = second;
    }
    
    public class Iterator implements java.util.Iterator<Paar<T>> {
        int pos = 0;


 @SuppressWarnings({ "unchecked", "rawtypes" })
PaarFeld4 paar = new PaarFeld4(first, second);
      
@Override
        public boolean hasNext() {
            return this.pos < paar.size();
        }

        @Override
        public Paar<T> next() {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }

        
    }

public Iterator iterator() {
return new Iterator();
}
    public int size(){
        return this.length;
    }
    
    
    
    
    public Paar<T> set(int i, Paar<T> paar){
            Paar <T> old = new Paar <T>(first.get(i),second.get(i));
            
            this.first.set(i,paar.first());
            this.second.set(i,paar.second());
            return old;
    }
    
    public PaarFeld4<T> get(){
    // hier komm ich nicht weiter !!!! 
    // wie kann ich mir ein PaarFeld ausgeben lassen?
    
    return ;
    }

    
}
```


Ich möchte eigentlich keine Lösung sondern ne Hilfe wie ich hier weiter machen könnte. 

Ich verstehe paar Sachen nicht, mit Next() bekomm ich ja das nächste Objekt, Ich könnte mir das Objekt mit get holen aber wie bekomm ich die Getter Methode geschrieben. 

Ich  hab einfach total das Brett vor dem Kopf!

vielen Dank schon einmal für die Hilfe


----------



## BuckRogers (9. Jun 2015)

Und? Schon gelöst?


----------

