Java,按对象获取ArrayList索引



所以我在代码中遇到了一个小问题:

synchronized(clients)
            clients.remove(this);
}

当一个客户端断开连接时,但现在我需要能够将该客户端的名称发送给所有其他客户端,要做到这一点,我必须做一些类似的事情

synchronized(clients)
            broadcast("Remove:"+clients.get(this).name);
            clients.remove(this);
}

但很明显,我无法用"this"来获取索引,所以我该如何获取正确的客户名称呢?谢谢

为什么不简单地使用this.name?既然已经有了对象,为什么需要获取索引才能再次获取对象?

编辑:

要回答标题中的问题(获取对象的索引),请使用indexOf

您看过ArrayList中的indexOf函数吗?

int index = clients.indexOf(this);
// Do what ever...
clients.remove(index); // or clients.remove(this);

我认为您想要从列表中删除特定的对象。如果你从你的代码中获得索引

int index = clients.get(this)

然后你可以很容易地删除

clients.remove(index);

或者,如果您从列表中得到对象,则删除

clients.remove(object) // remove by object

最新更新