Buongiorno a tutti sono fresco fresco del forum, appena registrato, e la motivazione che mi a spinto a fare questo, e il programma, incompleto che ora vi offro



codice:
package appelloDiEsame;//IL MIO PACKAGE E QUESTO, VOI PER PROVARE MODIFICATELO
import java.util.*;
public interface Insieme <T> extends Iterable<T> {
public boolean eVuoto();
public boolean appartiene(T elem);
public boolean aggiungi(T elem);
public boolean rimuovi(T elem);
public Insieme <T> unione (Insieme <T> altro);
public Insieme <T> intersezione (Insieme <T> altro);
public Insieme <T> differenza (Insieme <T> altro);
public Insieme <T> differenzaSimmmetrica (Insieme <T> altro);
}//INTERFACCIA




codice:
package appelloDiEsame;
import java.util.*;
public abstract class InsiemeAstratto<T> implements Insieme <T>{
	public int size(){
		int conta=0;
		for(T e:this) conta++;
		return conta;
	}
	public boolean eVuoto(){
	return this.size()==0;
}
	public boolean appartiene(T elem){
		for (T e:this)
			if(elem.equals(e))
				return true;
				return false;
	}
	public boolean rimuovi(T elem){
		Iterator <T> it=this.iterator();
		while(it.hasNext()){
			T t=it.next();
			if(t.equals(elem)){
				it.remove();
				return true;
			}
		}
	return false;
	}
	public abstract Insieme <T> unione (Insieme <T> altro);
	public abstract Insieme <T> intersezione (Insieme <T> altro);
	public abstract Insieme <T> differenza (Insieme <T> altro);
	public abstract Insieme <T> differenzaSimmmetrica (Insieme <T> altro);			
	//LI O LASCIATI APPOSTA ABSTRACT, IL PROBLEMA E GIU			
		
		}
:quote:


E ORA ARRIVA IL MIO PROBLEMA......................


codice:
package appelloDiEsame;
import java.util.*;
public class InsiemeVector<T> extends InsiemeAstratto<T> {
	private T vettore[];
	private int capacita=0;
	private int size=0;
	
	private class Iteratore implements Iterator<T>{
		private int freccia=0;
		private boolean rimuovibile=false;
		
		public boolean hasNext(){
		 return freccia<size;	
		}
		
		public T next(){
			if( !hasNext() ) throw new NoSuchElementException();
			rimuovibile=true;
			freccia++;
			return vettore[freccia-1];
		}//next
		public void remove(){
			if(!rimuovibile) throw new IllegalStateException();
			rimuovibile=false;
			//elimina l'elemento corrente a[freccia-1]
			for(int i=freccia; i<size; i++)
				vettore[i-1]=vettore[i];
			size--;
		}//remove
	}//Iteratore
	public InsiemeVector(){
		this(100);
	}
	public InsiemeVector(int capacita){
		if(capacita<0) throw new IllegalArgumentException();
		this.capacita=capacita;
        this.vettore=(T[])new Object[capacita];
      }
	public InsiemeVector(InsiemeVector iv){
		this.vettore=(T[])new Object[iv.capacita];
		this.size=iv.size;
		this.capacita=iv.capacita;
		for(int i=0; i< size; i++)
			vettore[i]=(T)iv.vettore[i];
	}



 public boolean appartiene(T elem){
        	 vettore.appartiene();      //QUI MI DA L' ERRORE..............
        }
MI DICE CHE NON E POSSIBILE RICHIAMARE APPARTIENE SU UN TIPO T[]
O PURE CAPITO CHE IL METODO LAVORA CON ELEMENTI T!
MA SE PROVO AFARE UN CASTING MI DA ERRORE...
MI DITE CM FACCIO A RICHIAMARE QUESTO BENEDETTO METODO SU UN VETTORE?????
QUELLO DELLA CLASSE ASTRATTA E OK CREDO... MI AIUTATE??????????????????????