Como remover um Socket de um ArrayList?

Olá, tenho um chat onde cada conexão e adicionada a um ArrayList, e um método que a cada 7 segundos verifica a conexão com o servidor, porém o ArrayList acaba ficando muito cheio, gostaria de saber como faço pra remover os Sockets que foram descontados?

  public void init() throws IOException {
        //cria um  socket servidor
        server = new ServerSocket(5002);
        //fica escutando na porta acima ate que os clientes soliciem conecxao
        areaDeTexto.append("Servidor ouvindo a porta: 5002 \n");
        while (true) {
            //aceita a conecxao dos clientes, e aguarda uma nova
            socket = server.accept(); 
            //cria uma nova thread para cada cliente
            //para que possa ser conectados outros clientes

            //thread para escutar o que os clientes enviam
            new Thread(new EscutaCliente(socket)).start();

            //pega todos que se conectarem e joga em um arrayList
            PrintWriter p = new PrintWriter(socket.getOutputStream());
            
            escritores.add(p);
            

        }
1 curtida

Boa tarde jovem!
Já pensou em utilizar o metodo TRY ? Ele tem o parâmetro Finally, seria um dos caminhos para você realizar o: > escritores.clear(INDICEDOARRAY).

try(p = new PrintWriter(socket.getOutputStream()){
  escritores.add(p);
} catch(Exception e){
 PRINT O ERRO AQUI
} finally {
escritores.clear(p);
}

Para maiores informações:

Obrigado pelo conteúdo vou estudar um pouco mais!
Att;