我必须存储关闭页面为了这个,我定义的地图 -地图与主要只 - 为包含检查
Map<Node, Boolean> closeList = new HashMap<Node, Boolean>()
现在用于检查节点是否在这个地图我使用存在 -
boolean binExists = closeList .containsKey(node)
似乎地图的value-boolean
是不必要的。
对于使用HashMap模式(O(1))进行检查,你有什么更好的主意吗?
我必须存储关闭页面为了这个,我定义的地图 -地图与主要只 - 为包含检查
Map<Node, Boolean> closeList = new HashMap<Node, Boolean>()
现在用于检查节点是否在这个地图我使用存在 -
boolean binExists = closeList .containsKey(node)
似乎地图的value-boolean
是不必要的。
对于使用HashMap模式(O(1))进行检查,你有什么更好的主意吗?
A HashSet似乎正是你所需要的。
Set<Node> closeSet = new HashSet<>();
Node n1 = new Node();
Node n2 = new Node();
closeSet.add(n1);
System.out.println(closeSet.contains(n1)); //true
System.out.println(closeSet.contains(n2)); //false - though depending upon equals/hashcode implementation of Node
即使使用Set<Node>
看起来比使用Map<Node, Boolean>
更好,java.util.HashSet
在其内部使用HashMap
的实现。如果你需要一个使用较少内存的实现,你可以看看this implementation。