比较 Java 中的两个基元数组?

2024-04-27

我知道 Arrays.deepEquals(Object[], Object[]) 但这不适用于原始类型(由于数组和自动装箱的限制,请参阅这个相关帖子 https://stackoverflow.com/questions/517751/java-generic-method-but-array-of-primitive-data-types-does-not-autobox).

考虑到这一点,这是最有效的方法吗?

boolean byteArrayEquals(byte[] a, byte[] b) {
    if (a == null && b == null)
        return true;

    if (a == null || b == null)
        return false;

    if (a.length != b.length)
        return false;

    for (int i = 0; i < a.length; i++) {
        if (a[i] != b[i])
            return false;
    }
    return true;
}

将您的第一个比较更改为:

if (a == b)
    return true;

这不仅捕获“两个都为空”的情况,还捕获“将数组与其自身进行比较”的情况。

但是,对于更简单的替代方案 - 使用Arrays.equals http://java.sun.com/javase/6/docs/api/java/util/Arrays.html#equals(byte%5B%5D,%20byte%5B%5D)它对每个基本类型都有重载。 (该实现与您的实现非常相似,只是它将数组长度提升到循环之外。在 .NET 上,这可能是一种反优化,但我猜 JRE 库实现者可能更了解 JVM :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较 Java 中的两个基元数组? 的相关文章

  • 使用 memcpy 复制二维数组?

    所以我想将二维数组的内容复制到另一个完全相同类型的数组 以下是数组的创建方式 GridUnit newGrid newGrid new GridUnit width for int i 0 i lt width i newGrid i ne
  • 删除队列对象数组

    我正在研究一个包含数组的对象queues数组长度在调用构造函数之前才确定 基本上看起来像下面这样 include
  • Java:计算字符串中字母的出现次数

    我正在尝试编写一个程序来计算字符串中字母的出现次数 例如 如果用户输入 Java 则会显示 j 1 a 2 v 1 但是 我的程序似乎有问题 当我输入 java 这个词时 它显示的是 j 0 a 1 v 0 Scanner myScanne
  • Android 在 ROOM 数据库中插入大量数据

    我有大约 10 个模型 每个模型都有超过 120K 行和 90 列的记录 其中包含双数组值 在 Room 中插入任何模型都需要超过 125 130 秒 任何人都可以建议我需要做什么才能使用一些批量插入技术来保存所有这些 120K 该技术大约
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 修改 Settings.apk 以与 Project Glass 配合使用

    我正在尝试构建要在 Google I O 的 Hacking Glass 会议上在 Glass 上使用的 Settings apk 他提到 为了让设置 apk 正常工作 需要修改清单中的一行 这是 AOSP 清单 http pastebin
  • java IO将一个文件复制到另一个文件

    我有两个 Java io File 对象 file1 和 file2 我想将 file1 的内容复制到 file2 有没有一种标准方法可以做到这一点 而无需我创建一个读取 file1 并写入 file2 的方法 不 没有内置方法可以做到这一
  • 无法在 Spring boot 中使用 findOne() 方法

    我的项目是关于用户管理器网络的 我是 Spring 和 Java 的新手 这是我的代码 在 UserController 中 RequestMapping value users name method RequestMethod GET
  • Swift - 对数组中每个字符串中的字符进行排序

    所以这个问题是这个问题的后续问题 允许相同字符串的快速字符串排列 https stackoverflow com questions 48976065 swift string permutations allowing the same
  • 当派生类中重写该方法时,如何使用派生类 Object 调用基类方法?

    class A public void m1 System out println hi base class class B extends A public void m1 System out println hi derived p
  • 运行Java程序时出错

    我正在尝试使用 netbeans 运行我的 java 程序 但收到此错误 有什么建议吗 Exception in thread AWT EventQueue 0 java lang NullPointerException at javax
  • 非法监控状态异常

    如何将轮询线程传递给另一个线程进行处理 程序执行在控制器类中 该类具有 main 方法和线程池 主类控制器 public static void main String args throws InterruptedException Ru
  • Java 中的逻辑回归

    我们需要用 Java 进行逻辑回归 我们在 Python 中使用了这段代码http blog smellthedata com 2009 06 python logistic regression with l2 html http blo
  • 如何使用spring data mongodb在mongodb中创建视图

    如何使用spring data mongodb在mongodb中创建视图 谢谢 您可以在需要的地方注入 org springframework data mongodb core MongoTemplate 类型的 bean 并使用其方法之
  • 如何在 Spring Boot 中访问 application.properties 文件中定义的值

    我想访问中提供的值application properties e g logging level org springframework web DEBUG logging level org hibernate ERROR loggin
  • Cordova Android 应用程序中的网页不可用

    编辑 我一直在解决这个问题并回顾我的所有步骤 我很乐意缩小这个问题的规模 并在令人困惑的情况下获得更多确切的细节 目前 我觉得 Keycloak 似乎只想将我重定向到 https 据我所知 这应该是 Wildfly 服务器配置问题 编辑 我
  • 定时器启动/停止参数

    自从加入这个社区以来 我在技能和进步方面取得了突飞猛进的进步 你们都是一个巨大的帮助 我无法提供一个计时器 该计时器已在启动和停止时实现了某些参数 我要么收到错误消息 局部变量计时器可能尚未初始化 要么没有收到错误消息 但什么也没有发生 也
  • 如何获取嵌套类型内部结构的所有类型?

    我有一个函数如下 public void park List
  • 在 C 中使用另一个结构中的二维结构数组的编码问题

    我正在使用一个二维结构数组 它是另一个结构的一部分 这不是我做过很多事的事情 所以我遇到了问题 该函数在接近末尾的 测试 for 循环后最终失败 它在出现段错误之前正确打印出一行 我的代码中将数据读入虚拟二维结构数组的部分工作得很好 所以它
  • 确定方法调用顺序的接口设计模式

    我想创建一个具有多种方法的 Java 接口 但我希望界面的用户只能按照我定义的顺序或顺序调用方法 例如buyTicket 不应在此之前调用reserveTicket 问 有没有设计模式或任何关于如何做到这一点的提示 我考虑过 A 接口被包装

随机推荐

  • R purrr:::pmap:如何按名称引用输入参数?

    我正在使用Rpurrr pmap具有三个输入 目前尚不清楚我如何在formula称呼 使用map2时 formula通话进行如下 x y 但是使用的时候怎么办pmap 重现哈德利的例子http r4ds had co nz lists ht
  • 从 split 切换到 preg_split 时 php preg_split 错误

    在从 split 更改为 preg split 以获得 php 5 3 兼容性后 我从 php 收到此警告 PHP Warning preg split Delimiter must not be alphanumeric or backs
  • XML 字符串到 XML 文档

    我有一个完整的 XML 文档String我需要将其转换为 XML 文档并解析文档中的标签 此代码示例取自csharp examples net http www csharp examples net xml nodes by name 写
  • Google App Engine 上的 NestJS 项目显示错误“无法写入文件”&&“EROFS:只读文件系统”

    当我在 Google App 引擎上部署 NestJS 项目时 我正在努力解决如下错误 错误 TS5033 无法写入文件 workspace dist properties dto property filter dto d ts EROF
  • Android:实时图像处理

    我有一个应用程序 它进行相机预览 对每一帧执行一些基本的图像处理功能 例如边缘检测 颜色变化 图像扭曲等 并 实时 将修改后的帧显示到屏幕上 类似于Android Market中的 Paper Camera 应用程序 我的方法总结 我也做过
  • 长异常链的优雅替代方案? [复制]

    这个问题在这里已经有答案了 很多时候我发现自己写的东西看起来像这样 try procedure a except WrongProcedureError try procedure b except WrongProcedureError
  • 具有多个 Item 布局的 ListView 适配器

    我正在考虑向我的 Android 应用程序添加一个带有缩略图的列表视图 左边是缩略图 右边是文字 有没有办法用单独的 xml 文件填充列表视图 例如 我可以为奥地利 英国 美国等提供单独的 xml 并将它们添加到列表视图中吗 我问的原因是
  • 如何将“实例键”添加到 keras 模型输入以在 gcloud ai-platform 中进行批量预测?

    我正在尝试添加 键 以匹配 Google AI Platform 的批量预测输出 但是我的模型输入只允许一个输入 看起来像这样 input tf keras layers Input shape max len x tf keras lay
  • 可以在 __getitem__ 上使用多个参数吗?

    我正在尝试使用 getitem self x y 在我的 Matrix 类上 但在我看来它不起作用 我仍然不太了解如何使用 python 我这样称呼它 print matrix 0 0 是否有可能使用多个参数 谢谢 也许我可以只使用一个参数
  • 敌人不会在 pygame 中自行移动[重复]

    这个问题在这里已经有答案了 好吧 所以我的敌人只有在我移动角色时才会移动 但有时它也会完全从游戏窗口中产生 还有背景 玩家和敌人 在我按下移动按钮之前不会弹出 我对此感到非常抱歉 lmfao 也对我被告知将它们放在那里以提醒 wtf 的文本
  • 要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet

    我在 Kendo UI 网格中绑定了批量记录 响应是从 Json 返回的 我在使用以下格式时遇到错误 问题代码 方法1 public JsonResult KendoserverSideDemo int pageSize int skip
  • 从 C# 运行 32 位或 64 位 PowerShell

    我构建了一个执行 PowerShell 脚本的 32 位 NET DLL 我需要它能够以 64 位模式运行脚本and 32 bit 我已经知道如何使用命令行执行此操作 C Windows Sysnative cmd c powershell
  • Groovy 中的 __LINE__ 功能

    可以通过以下方式获取当前行号 LINE 在 Ruby 或 Perl 中 例如 print filename FILE line LINE Groovy 中有同样的功能吗 不能直接获取 但您可以通过异常 或可抛出 堆栈跟踪来获取它 例如 St
  • 如何使用 C# 获取打印作业状态

    我可以打印文档 但不知道如何获取其状态 我查阅了很多资源 MSDN http support microsoft com kb 322091 检查工作状态的链接 https stackoverflow com questions 55637
  • 如何在查询中获取 MySQL 状态

    是否可以在 MySQL 查询中使用服务器状态变量 我可以从 显示状态 中看到各种指标 但如何计算派生值 例如查询缓存命中率 show global status like Qcache inserts show global status
  • 如何将 NSArray 元素连接到 NSString 中?

    给定一个 NSString 的 NSArray 是否有一种快速方法将它们连接成一个 NSString 带有分隔符 NSArray stuff NSString combinedStuff stuff componentsJoinedBySt
  • 如何使用 jQuery 循环 JSON 文件

    我正在尝试循环下面的 JSON 文件 statements subject A predicate B object C subject D predicate E object F 正如您所看到的 有两个主语 两个谓语和两个宾语 例如 我
  • 正则表达式,获取两个关键字之间的整个字符串

    我正在做一些输出解析 我需要从两个单词之间抓取一大块文本 例如 如果我正在解析文本 Hi this is an example 我希望能够指定我的两个单词是 Hi 和 example 然后我将取回字符串 this is an 我知道正则表达
  • SQL 中的模糊分组

    我需要修改 SQL 表以对稍微不匹配的名称进行分组 并为组中的所有元素分配标准化名称 例如 如果初始表如下所示 Name Jon Q John Q Jonn Q Mary W Marie W Matt H 我想创建一个新表或向现有表添加一个
  • 比较 Java 中的两个基元数组?

    我知道 Arrays deepEquals Object Object 但这不适用于原始类型 由于数组和自动装箱的限制 请参阅这个相关帖子 https stackoverflow com questions 517751 java gene