Ho questo metodo nel mio oggetto, che serve ad aggiungere elementi a una lista(equivalente della funzione add di LinkedList). Vorrei renderlo più efficente, contando che nel mio oggetto ho 3 liste, e tutte e 3 possono avere l'esigenza di richiamare add.
la prima cosa che ho fatto all'origine è stata di far puntare p alla lista numero 1. come dovrei modificare il programma per rendere valido un richiamo di questo tipo?

lista2.add(oggetto_comparable);

codice:
// Aggiunge alla fine della lista un elemento

     public void add(Comparable obj){

       int numElementi=1;

       // p è il puntatore della lista
       Link p = lista;
       // trova il primo riferimento a null
       while(p.next!= null) {p = p.next; numElementi++;}
       // allunga la lista con l'elemento passato
       p.next = new Link(obj, null);
       // nel campo data del primo elemento si mette la lunghezza della lista
       lista.data = new Integer(numElementi);

    }