[英]Map with key only - for contains checking
我必须存储一个关闭列表 ,我定义了一个地图 -
Map<Node, Boolean> closeList = new HashMap<Node, Boolean>()
现在用于检查此地图中是否存在节点我使用 -
boolean binExists = closeList .containsKey(node)
似乎地图的value-boolean
是不必要的。
你有没有更好的想法使用HashMap模式(O(1))进行此检查?
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
。 如果您需要使用较少内存的实现,您可以查看此实现 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.