Esercizio in java

di il
2 risposte

Esercizio in java

Ragazzi sto facendo questo programma
package pr2.liste;

public interface Lista {

/** restituisce il numero di elementi presenti della lista */
int getNumeroElementi();
/** restituisce il primo elemento della lista, se la lista contiene almeno un elemento. Altrimenti restituisce null*/
Object getPrimoElemento();
/** restituisce un array contenente tutti gli oggetti della lista. L'array sara' lungo esattamente quanto il numero di elementi della lista */
Object[] getListaAsArray();
/** inserisce l'elemento passato come argomento all'inizio della lista. Restituisce false se non e' stato possibile inserire l'elemento; true altrimenti*/
boolean insertElemento(Object elemento);

}

e devo consegnare un altro file che x ora ho sviluppato così:


import pr2.liste.*;

class ListaArray implements List {

private Entry head;
private int getNumeroElementi;

private static class Entry {

Object element; //elemento rappresentato
Entry next; //successore

/* crea un oggetto entry che referenzierà l'elemento della lista, dato l’elemento e il successore */

Entry(Object elementi, Entry next) {

this.elementi = elementi;
this.next = next;
}
}

public void esercizio(){

this.head=null;
this.getNumeroElementi=0;
}

/* ritorna il numero di elementi nella lista*/

public int getNumeroElementi() {

return this.getNumeroElementi;
}

/* aggiunge l'oggetto obj in testa alla lista */

boolean insertElemento(Object elemento){

Entry e = new Entry(elemento,this.head);
this.head=e;
this.getNumeroElementi++;
if (this.head==e)
return true;
else return false;
}


}


solo che ci sono miliardi di errori potete darmi una dritta su cosa dovrei fare perchè non trova la classe che non ho capito se devo farla io o meno..e poi mi manca una parte

2 Risposte

  • Re: Esercizio in java

    max1990 ha scritto:


    ragazzi sto facendo questo programma
    package pr2.liste;

    public interface Lista {

    /** restituisce il numero di elementi presenti della lista */
    int getNumeroElementi();
    /** restituisce il primo elemento della lista, se la lista contiene almeno un elemento. Altrimenti restituisce null*/
    Object getPrimoElemento();
    /** restituisce un array contenente tutti gli oggetti della lista. L'array sara' lungo esattamente quanto il numero di elementi della lista */
    Object[] getListaAsArray();
    /** inserisce l'elemento passato come argomento all'inizio della lista. Restituisce false se non e' stato possibile inserire l'elemento; true altrimenti*/
    boolean insertElemento(Object elemento);

    }

    e devo consegnare un altro file che x ora ho sviluppato così:


    import pr2.liste.*;

    class ListaArray implements List {

    private Entry head;
    private int getNumeroElementi;

    private static class Entry {

    Object element; //elemento rappresentato
    Entry next; //successore

    /* crea un oggetto entry che referenzierà l'elemento della lista, dato l’elemento e il successore */

    Entry(Object elementi, Entry next) {

    this.elementi = elementi;
    this.next = next;
    }
    }

    public void esercizio(){

    this.head=null;
    this.getNumeroElementi=0;
    }

    /* ritorna il numero di elementi nella lista*/

    public int getNumeroElementi() {

    return this.getNumeroElementi;
    }

    /* aggiunge l'oggetto obj in testa alla lista */

    boolean insertElemento(Object elemento){

    Entry e = new Entry(elemento,this.head);
    this.head=e;
    this.getNumeroElementi++;
    if (this.head==e)
    return true;
    else return false;
    }


    }


    solo che ci sono miliardi di errori potete darmi una dritta su cosa dovrei fare perchè non trova la classe che non ho capito se devo farla io o meno..e poi mi manca una parte



    Ciao la soluzione è semplice visto che stai usando una ListaArray dovresti usare come struttura dati un array.



    public class ArrayLista<T>{

    T[] t;
    int contatore=0; // tiene conto degli elementi presenti nell'array;

    public ArrayLista(){ t=new T[10];} //Cos[]truttore di default
    public ArrayLista(int size){ t=new T[size]; } // costruttore con una lunghezza passata dall'utente


    public boolean insertElemento(T oggetto){

    if(oggetto.equals(t[0])) return false;
    t=trasla(t);
    t[0]=oggetto;
    return true;

    }



    private T[] trasla (T[]v){
    T[]g=new T[v.length+1]
    for(int i=0;i<v.letgth;i++)
    g[i+1]=v;
    }

    //Al resto ci penserai tu ti ho mostrato la via. Ciao
  • Re: Esercizio in java

    Un piccolo errore nel metodo insertElemento aggiora il contatore incrementandolo di 1;
    in questo modo potrai sapere quanti elementi ci sono nella lista e quindi avrai il size che ti chieide l'esercizio.
    In effetti getNumero elementi ritornerà il contatore.
Devi accedere o registrarti per scrivere nel forum
2 risposte