当前位置: 首页 > 知识库问答 >
问题:

如何比较JNI中的两个jbyteArray?

吕高雅
2023-03-14

我想比较两个jbyteArray如果在JNI中相等的话。有没有像“strcmp”这样的方法?

共有1个答案

许嘉福
2023-03-14

如果您想检查两个jbyteArrays实际上是相同的对象,可以使用env->isSameObject(array1,array2)进行测试。

如果它们实际上是不同的对象,您可以通过逐个元素匹配它们来将数组的内容与JNI进行比较。自然,明智的做法是首先比较两个对象的长度,然后只有在长度相等的情况下才继续定位它们的元素。

getByteArrayElements(array)返回一个C字节数组,因此两个jbyteArrays的结果可以与memcmp()进行比较。

即使不再需要Java对象,也不要忘记在使用后释放数组。在开始比较jbyteArrays之前,不要忘记检查两个jbyteArrays是否都为空。

 类似资料:
  • 问题内容: 我有两个。每个大小为100000。我想比较它们并计算匹配的元素。 这是我的代码: 在这里比较过程要花费很多时间。 如何解决和优化此问题。 问题答案: 您应该使用:返回一个包含collection1中所有元素的集合,这些元素也处于collection2中。

  • 问题内容: 我必须比较两个对象(不是)。比较它们的规范方法是什么? 我可以想到: 该运营商只比较基准,因此这将仅适用于较低的整数值的工作。但是也许自动装箱开始了…? 这看起来像一个昂贵的操作。是否以此方式计算出哈希码? 有点冗长… 编辑: 谢谢您的答复。尽管我现在知道该怎么办,但事实已分布在所有现有答案(甚至是已删除的答案)上,我也不知道该接受哪个答案。因此,我将接受最佳答案,即所有三种比较可能性

  • 问题内容: 如何使用Python比较两个日期以查看稍后的日期? 例如,我想检查当前日期是否超过了我创建的假期日期列表中的最后日期,因此它将自动发送电子邮件,告诉管理员更新holiday.txt文件。 问题答案: 使用方法和运算符及其种类。

  • 问题内容: 这是一个简单的问题-给定两个URL,是否有一些内置方法或一个Apache库来确定它们在逻辑上是否相等? 例如,这两个URL相等: 问题答案: 尽管(以及有问题的)这些特定示例 未 返回,但我认为这是唯一可以假定等效的情况(因为HTTP协议中没有空路径)。 这些URI 并且可以 不 被认为是等价的。 也许您可以使用包装在实用程序中的方法来显式处理此特定情况。

  • 在一个JUnit4测试中,我有一个方法,它返回一个对象,我要将它与引用列表进行比较。到目前为止,我发现的最佳解决方案是使用和,如下所示: 对于只返回很少值的测试来说,这是很好的。但是如果一个测试返回更多的值,这肯定不是最好的方法。 我还尝试了下面的代码。要编译代码,需要在之前向下转换到: 对比失败了,不明白为什么: java.lang.AssertionError:预期:(包含<[<0.2>的<1

  • 问题内容: 可以说我有两个带有SSN变量的表,并且我想显示仅在一个表中的表,而不是两个表中的表。 正确的方法是什么? 问题答案: 这是一种方法: 这适用于大多数数据库,但不适用于MySQL。以下内容几乎可以在任何数据库中工作: