我有一个HashSet是客户端套接字的集合。当客户端连接时,套接字被添加到HashSet。然后我需要访问该套接字,但我不知道如何在HashSet中访问它。如何访问添加到HashSet的最后一个对象?
...
clientSockets.Add(listenerSocket.EndAccept(async));
WaitForData(lastAddedSocket);
....
我怎么能确定lastAddedSocket
是什么?
我有一个HashSet是客户端套接字的集合。当客户端连接时,套接字被添加到HashSet。然后我需要访问该套接字,但我不知道如何在HashSet中访问它。如何访问添加到HashSet的最后一个对象?
...
clientSockets.Add(listenerSocket.EndAccept(async));
WaitForData(lastAddedSocket);
....
我怎么能确定lastAddedSocket
是什么?
有没有办法问一个HashSet“添加到你最后的东西是什么?”订单全部混乱起来。
您应该简单地保留一个名为lastAddedSocket
的单独变量。每次将套接字添加到HashSet时,还要将其分配给lastAddedSocket
。然后,您将能够轻松并持续地查找它。
通常可以理解,不保证哈希集的顺序。虽然Java文档出来并说这是MSDN最接近的是
一个集合是不包含重复的元素,并且其元素没有特定的顺序。
信息感谢:Does HashSet preserve insertion order?
这就是说,它应该很容易为你自己保存你的最后插座。
当您删除最后一个时,您可能会希望您的上一个是上一个上一个。除了HashSet之外,我推荐使用队列<>,这样您就可以始终记住它们到达的顺序,以防最后消失。
HashSet中没有顺序。 – 2011-02-08 02:05:46