OK, ecco la mia ArrayList
:Java - rimuovere ultimo elemento noto da ArrayList
private List<ClientThread> clients = new ArrayList<ClientThread>();
e qui è quello che sto cercando di fare:
Sto cercando di rimuovere l'ultimo elemento noto dal ArrayList
Ho postato sopra. Sto cercando di fare questo con il codice qui sotto:
} catch(SocketException re) {
String hey = clients.get(clients.size());
ClientThread.remove(hey);
System.out.println(hey + " has logged out.");
System.out.println("CONNECTED PLAYERS: " + clients.size());
}
ma sto ottenendo questo errore:
C:\wamp\www\mystikrpg\Server.java:147: incompatible types
found : Server.ClientThread
required: java.lang.String
String hey = clients.get(clients.size());
^
C:\wamp\www\mystikrpg\Server.java:148: cannot find symbol
symbol : method remove(java.lang.String)
location: class Server.ClientThread
ClientThread.remove(hey);
^
2 errors
Che cosa sto facendo di sbagliato? Si suppone di rimuovere l'ultimo elemento conosciuto dal mio ArrayList
.
Si noti che quando si esegue l'override di '.equals()', è possibile utilizzare quest'ultima versione per assicurarsi che sia davvero l'ultimo oggetto rimosso. –
Credo che la tua prima soluzione non funzionerebbe correttamente se ci fossero duplicati nella lista. Tuttavia, potrebbero esserci situazioni in cui si desidera tale funzionalità. – Pijusn
Si noti che la rimozione di un oggetto da un elenco di array è O (n). Il secondo approccio è un tempo costante. – Alexander