Nel titolo ho scritto lista, ma in realtà è una singola colonna di un TableModel. In pratica devo contare le visite uniche di ogni IP che visita il mio sito (cioè quante visite ci sono con lo stesso IP).

la variabile "modello" è un TableModel di cui una colonna (la numero 0) contiene gli IP.
la variabile "elementi" è un List che proviene da un file xml. La utilizzo per contare il numero delle visite (potrei fare anche "model.getColumnCount").
Da notare che gli IP nel modello possono anche essere sparsi, e non consecutivi.

codice:
headers = new String[2];
headers[0]="IP ";
headers[1]="Visite";
TableModel modello2 = new SparseTableModel(elementi.size(), headers);
            int count=0;                 //contatore che conta il numero di volte in cui compare un IP
            for (int i=0; i<elementi.size();i++) {
                for (int k=i;k<elementi.size();k++){
                    if ((modello.getValueAt(k, 0)).toString().equals((modello.getValueAt(i, 0)).toString()))  //Se l'IP che sto analizzando è uguale al precedente..)
                        count++;   (...aumento il contatore di uno)
                        
                }                    
                modello2.setValueAt(modello.getValueAt(i, 0), i, 0);     //scrivo IP nel nuovo modello
                modello2.setValueAt(count, i, 1);                             //aggiorno numero delle visite nel nuovo modello
                
                count=0;
            }
Il codice funziona ma purtroppo c'è un inconveniente. Alla prima occorrenza di ogni IP, conta il numero di volte che compare fino alla fine del modello. Ma quando scansiona il modello, alla seconda occorrenza, fa sempre la stessa cosa col risultato che, se un IP visita 10 volte il mio sito, allora, poi, ordinando le visite in ordine descrescente nella JTable inizializzato con model2, si trova tipo:

codice:
151.31.122.172           10         
151.31.122.172            9
151.31.122.172            8
151.31.122.172            7
151.31.122.172            6
151.31.122.172            5
151.31.122.172            4
151.31.122.172            3
151.31.122.172            2
151.31.122.172            1
e non era questo ovviamente il risultato voluto. In questa JTable ogni IP deve comparire una ed una sola volta.

Sapete magari un modo più veloce per fare ciò? (capite che, per esempio, per 15000 visite c'è un po' da aspettare )