好的我编辑发布到短版本我想询问c#中的方法:TryGetValue和比较排序列表(IComparator)。
我需要用Java编写这个方法,所以我编写了这段代码。询问知道这种语言的开发人员是否正确?
1)第一个问题 - TryGetValue是用Java编写的方法是一样的吗? C#:
Node value;
if (!nodes.TryGetValue(nodeId,out value)) return false;
到Java:
Node value;
if (!nodes.containsKey(nodeId)){
return false;
}else{
value = nodes.get(nodeId);
}
2)和java中的比较器排序工作相同吗?
static int compareNodes(Node n1, Node n2)
{
if (n1.f > n2.f) return 1;
if (n1.f < n2.f) return -1;
return 0;
}
list.Sort(compareNodes);
这在Java中:
@Override
public int compare(Node nodeFirst, Node nodeSecond) {
if (nodeFirst.f > nodeSecond.f)
return 1;
if (nodeFirst.f < nodeSecond.f)
return -1;
return 0;
}
Collections.sort(nodeList, new OpenList());
答案 0 :(得分:2)
在快速浏览一下代码之后,我看不出任何真正的问题。但不保证。
如果你真的想确定,你应该创建单元测试来验证C#和Java中的行为。这将需要更多的工作,但比依赖于此处的评论更安全。