Java,按对象获取ArrayList索引

时间:2012-09-01 04:58:28

标签: java arraylist

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

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

当客户端断开连接时,但现在我需要能够将该客户端的名称发送给所有其他客户端,为此我必须做一些像

这样的事情。
synchronized(clients)
            broadcast("Remove:"+clients.get(this).name);
            clients.remove(this);
}

但显然我无法获得带有“this”的索引,那么我该如何获得正确的客户名称呢?谢谢!

4 个答案:

答案 0 :(得分:13)

为什么不简单地使用this.name? 由于你已经拥有了对象,为什么需要让索引再次获取对象?

编辑:

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

答案 1 :(得分:5)

您是否查看了ArrayList中的indexOf函数?

答案 2 :(得分:3)

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

答案 3 :(得分:-1)

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

int index = clients.get(this)

然后你可以轻松删除

clients.remove(index);

或者如果您从列表中获取对象,则删除

clients.remove(object) // remove by object