Pages: [1]   Go Down
Print
Author Topic: PROBELMA SERIO CON LE LISTE LINKATE GENERICHE  (Read 681 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Dhavamba
Apprendista Forumista
**
Offline Offline

Posts: 286


« on: 12-05-2009, 07:54:01 »

E' da giorni che ci combatto però mi fà errore col mio oggetto di prova.

Ecco un particolare della classe lista

Code:

....


    public void insertOrdered(Object element) {
        if(isEmpty()) {
            insertHead(element);
        } else {
            if(((Comparable)head.getElement()).compareTo(element) >= 1) {   
                insertHead(element);
            } else {
                Node aux = head;
                for(; aux != null &&
                     ((Comparable)aux.getNext().getElement()).compareTo(element) == -1;  //questa
                      aux = aux.getNext());
                if(aux == null) {
                    insertTail(element);
                } else {
                    aux.setPrev(new Node(element, aux, aux.getPrev()));
                    aux.getPrev().getPrev().setNext(aux.getPrev());
                }
            }
        }
    }

......



la classe dell'oggetto di prova

Code:

/**
    Oggetto di prova che implementa Comparable
*/

class ObjProva implements Comparable{
    private String val;

    public ObjProva(String val) {
        this.val = val;
    }

    public String getVal() {
        return val;
    }

    public int compareTo(Object element) {
    if (getVal().compareTo(((ObjProva)element).getVal()) > 0) return 1;
    if (getVal().equals(((ObjProva)element).getVal())) return 0;
    else return -1;
   
 
 
    }
   
}



e il main

Code:

class Maina {
       

    public static void main(String[] args) {
        DLinkedList L = new DLinkedList(); 
    L.insertHead(new ObjProva("ciao"));
    L.insertOrdered(new ObjProva("zaino"));
    L.insertOrdered(new ObjProva("aaino"));
    ObjProva a = (ObjProva)(L.getHead().getNext().getElement());
        System.out.println(a.getVal());
    }
}




Se qualcuno prova a compilare il main mi fà errore di NullPoint e mi rimanda alla linea 79 della lista, che sarebbe la parte di codice che implementa comparable nell'insertOrdered(la linea che ho segnato icol commento)
Perchè?
« Last Edit: 12-05-2009, 07:55:32 by Dhavamba » Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #1 on: 12-05-2009, 11:56:07 »

Puoi copiare-incollare l'errore specificato dal compilatore direttamente dalla console?
La frase
Quote
mi fà errore di NullPoint
non mi è di molto aiuto per capire come aiutarti ...
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
feboss
Guest
« Reply #2 on: 12-05-2009, 12:20:42 »

aux.getNext().getElement()).compareTo(element) == -1;
cambia con
aux.getNext().getElement()).compareTo(element) < 0;
Logged
Pages: [1]   Go Up
Print
Jump to: