正确将代码 C# 转换为 Java



好的,我编辑了简短版本的帖子,我想询问有关 c# 中的方法:TryGetValue 和按比较(IComparator)排序列表。

我需要用 Java 编写此方法,所以我编写了此代码。问懂这两种语言的开发人员是正确的吗?

1)第一个问题 - TryGetValue是用Java编写的方法是一样的吗?C#:

     Node value;
    if (!nodes.TryGetValue(nodeId,out value)) return false;

到爪哇:

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());

快速浏览了一下您的代码后,我看不出它有任何真正的问题。虽然不能保证。

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

相关内容

  • 没有找到相关文章

最新更新