2011-02-08 39 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之外,我推薦使用隊列<>,這樣您就可以始終記住它們到達的順序,以防最後消失。

相關問題