2011-02-08 102 views
2

我有一个HashSet是客户端套接字的集合。当客户端连接时,套接字被添加到HashSet。然后我需要访问该套接字,但我不知道如何在HashSet中访问它。如何访问添加到HashSet的最后一个对象?

... 
clientSockets.Add(listenerSocket.EndAccept(async)); 
WaitForData(lastAddedSocket); 
.... 

我怎么能确定lastAddedSocket是什么?

+1

HashSet中没有顺序。 – 2011-02-08 02:05:46

回答

6

有没有办法问一个HashSet“添加到你最后的东西是什么?”订单全部混乱起来。

您应该简单地保留一个名为lastAddedSocket的单独变量。每次将套接字添加到HashSet时,还要将其分配给lastAddedSocket。然后,您将能够轻松并持续地查找它。

2

通常可以理解,不保证哈希集的顺序。虽然Java文档出来并说这是MSDN最接近的是

一个集合是不包含重复的元素,并且其元素没有特定的顺序。

信息感谢:Does HashSet preserve insertion order?

这就是说,它应该很容易为你自己保存你的最后插座。

0

当您删除最后一个时,您可能会希望您的上一个是上一个上一个。除了HashSet之外,我推荐使用队列<>,这样您就可以始终记住它们到达的顺序,以防最后消失。

相关问题