我想移除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