是正确的翻译代码C#到Java?

时间:2014-01-02 12:49:52

标签: c# java sorting compare

好的我编辑发布到短版本我想询问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());

1 个答案:

答案 0 :(得分:2)

在快速浏览一下代码之后,我看不出任何真正的问题。但不保证。

如果你真的想确定,你应该创建单元测试来验证C#和Java中的行为。这将需要更多的工作,但比依赖于此处的评论更安全。