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![]()
![]()
:quote: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 }
E ORA ARRIVA IL MIO PROBLEMA......................
MI DICE CHE NON E POSSIBILE RICHIAMARE APPARTIENE SU UN TIPO T[]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.............. }
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??????????????????????

Rispondi quotando