我想移除HashSet的第一個元素並將此移除的元素指定給另一個變量。由於它的remove函數返回布爾值,所以我不能這樣做。我怎樣才能獲得它的刪除值?謝謝。 我的代碼是將從HashSet中移除的元素指定給變量
HashSet<Node> List = new HashSet<Node>();
expandList.add(s);
while(expandList.size() > 0)
{
Node toAssigned = List.remove(s);
// other works related with toAssigned are here
}
但是是不是efcect的性能嗎?此代碼是8益智遊戲的BFS算法的一部分。我必須使用HashSet,因爲我的顧問,因爲他說arrayList太慢@mahdad – user3864949 2014-11-06 22:26:38
@ user3864949: HashSet確保沒有重複項,給你一個O(1)contains()方法,但不保留順序。 ArrayList不確保沒有重複項,contains()是O(n)但您可以控制條目的順序。 – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2014-11-06 22:29:46
@ user3864949我相信使用哈希集具有比數組列表更好的性能。但你需要爲你的問題做 – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2014-11-06 22:30:44