比较两个字符串数组而不通过每个元素进行索引的最佳方法是什么?

2023-12-01

是否有任何有效的方法可以用于比较两个字符串数组而无需检查每个元素?

我尝试使用数组列表,构建对象,但没有一个没有显示出太大的效果。


最后,要比较两个字符串“序列”(表示字符序列),没有任何提高效率的技巧。

你必须somehow遍历两个序列并逐个元素进行比较。

从这个意义上说,你唯一可以努力的就是:“高效”的编码风格;换句话说:专注于编写人类可读的代码。

当然,现有的库调用 Arrays.equals() 将是您的第一站。除此之外:你可以非常确定,无论你自己写下什么,都会not比标准内置解决方案执行“更好”。

除此之外:请记住,决定之间存在差异:两个大小相同的数组是否具有相同的元素?或者他们有完全一样元素的顺序?

换句话说;you必须澄清 [A, B] 是否等于 [B, A] - 以确定是否数组.equals() with

如果两个指定的对象数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中所有对应的元素对都相等,则认为这两个数组相等。如果 (e1==null ? e2==null : e1.equals(e2)),则两个对象 e1 和 e2 被视为相等。换句话说,如果两个数组包含相同顺序的相同元素,则它们相等。此外,如果两个数组引用都为空,则认为两个数组引用相等。

确实是您所需要的!

如果订单是not对你很重要,你首先必须sort两个数组 - 因为这会将两个数组内容放入相同的顺序。

最后的想法:从性能角度来看,这里使用数组和 ArrayList 之间应该没有(太大)差异。在我的回答中,我们只是发现您可以通过放下来更轻松地与列表进行比较listA.equals(listB)(这将为您提供 Arrays.equals() 语义)。

唯一可能真正影响性能的方面是:当您的用例允许使用集合时......

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

比较两个字符串数组而不通过每个元素进行索引的最佳方法是什么? 的相关文章

随机推荐

  • 从另一个页面获取ElementById

    我正在尝试获得一个div从一个网页 URL 到另一个网页并使用纯文本显示getElementById不使用 AJAX 或 jQuery 因为我将在 FitNesse 中实现它 有没有办法传递URL 您可以在隐藏的 iframe 中加载 UR
  • 获取嵌套 html 标签内的字符偏移量

    我有类似于此的 HTML 代码 pre words words words words span words mystery words span words words words pre 我想获得 神秘 相对于的字符偏移量pre使用 J
  • 在 Winforms 中从外部线程访问 UI

    在 WPF 中 可以使用类似以下内容 Application Current Dispatcher BeginInvoke new Action gt Form1 grid Items Refresh 访问主线程之外的 UI 功能 然而 在
  • 从datagridview复制粘贴到excel时如何保留颜色?

    我使用以下 CellFormatting 代码有条件地为 datagridview 中的行着色 private void SGridView CellFormatting object sender DataGridViewCellForm
  • TimeZoneInfo.GetSystemTimeZones() 如何仅选择特定国家/地区代码的条目?

    TimeZoneInfo GetSystemTimeZones 为您提供所有时区的枚举 问题是如何仅选择特定国家 地区代码的条目 我知道 UTC 偏移量和国家 地区代码 并且需要能够选择正确的时区值 首先 您会发现由于夏令时的变化 可能还有
  • Java Swing Combobox removeAllItems 还调用 ItemStateChanged 吗?

    我的代码实际上很简单 我看到一个简单且相似的代码来自本文 首先 我有 1 个组合框 我有一个听众叫itemStateChanged 我添加到这个监听器中的目的是 当用户从其保管箱中单击 选择 一个项目时执行一些代码 Cmb ItemCate
  • 毕加索本地图片加载速度慢?

    我开发 Android 应用程序已有六年了 并且使用简单的 自制 图像缓存库也有同样长的时间 我最近开始使用一个依赖于 Picasso 的组件 并决定可能是时候切换到通用库了 而不是保留我多年前编写的旧解决方案 我的大多数图像都是存储在可绘
  • 如何在本地机器上使用带有 sdk 的云构建来构建 docker 镜像,而无需尝试它

    我在用着云构建构建 docker 镜像 从以下位置提供的示例中指导自己github 垃圾桶 包装 源代码 cloud google com contrib go opencensus io github com go opencensus
  • JSON.net 直接从 oledbconnection 序列化

    我目前有一个处理程序 它获取 Excel 文件的文件路径和选项卡名 将文件处理到数据表中 然后将表序列化为 json 字符串以返回 这一直有效 直到我尝试处理大文件 然后出现内存不足异常 我在想 如果我不先将所有内容加载到数据表中 而是直接
  • 在 WPF 应用程序中使用 reCaptcha

    我正在寻找如何将 WPF 桌面应用程序与 reCaptcha 集成的解决方案 有人知道解决方案吗 我正在为我的应用程序开发注册模块 并且需要良好且简单的验证码 Thanks See https developers google com r
  • android - EditText 长度过滤器无法正常工作

    首先我不得不说我已经在这里阅读了类似的问题和答案 这个问题基本上是重复的这个问题和许多其他问题 但这些问题的答案并不像我想要的那样 问题 以编程方式在我的 EditText 上设置长度过滤器 如下所示 editText setFilters
  • Windows 中的 Laravel 权限问题 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我从服务器下载了laravel到我本地的windows8 xampp gt htdocs 文件夹 以下是我收到的错误 异常处理程序中的错误 流或文件 C xampp htdocs l
  • phpmyadmin mysql 触发器语法错误

    我正在尝试编写一个 mySQL tigger 但我无法将代码放入 phpMyAdmin MySQL 中而不出现语法错误 有人能帮助我吗 Tables 我的触发器 CREATE TRIGGER after jeu insert ON jeu
  • 如何在 AS3 中完全删除影片剪辑

    我希望删除 mc 及其所有计时器 事件 有没有简单的方法可以做到这一点 当然 取消注册其计时器和事件 将其从其父级中删除 并删除对它的所有引用 也就是说 AS3是一种垃圾收集语言 因此您无法控制对象 包括MC 何时被really从记忆中删除
  • Google Sheets:如何触发随机函数? [复制]

    这个问题在这里已经有答案了 我在 Google 上有一张工作表 并一直在寻找如何使随机化脚本仅在需要时才工作的解决方案 而不是每次打开工作表或刷新它时 这是例子 让我们把工作表看成这样 B5单元有以下代码 index B1 B3 randb
  • 如何修复图像裁剪的放大尺寸?

    我想修复图像裁剪的缩放尺寸 如何做到这一点 我找到了很多并尝试了很多 但仍然无法获得正确的解决方案 裁剪的图像放大太多并变得模糊 请有人帮助我我的这个问题 我的代码是 intent putExtra crop true intent put
  • 电子邮件: Intent.ACTION_SEND 返回值是什么?

    当我启动时 startActivity new Intent Intent ACTION SEND 用于发送电子邮件 这是我可以在中测试的返回值 onActivityResult 因为 例如 如果用户单击 su 取消 退出电子邮件客户端 我
  • 读取文件并通过管道将其发送到父进程的程序

    我需要编写一个程序 创建从命令行向子进程发送文件名的管道 在子进程中读取该文件并使用管道将其发送回 父进程应该打印该文件 如果子进程中发生错误 则必须将错误发送到父进程 这是我的代码 它沿着文件文件打印一些垃圾 并且当我运行它时 它还禁用终
  • 编译Python代码和C++代码一样快吗?

    如果我用 Python 编写一个程序 然后使用以下任何编译器对其进行编译 Gordon McMillan 的安装程序 跨平台 Thomas Heller 的 py2exe Windows Anthony Tuininga 的 cx Free
  • 比较两个字符串数组而不通过每个元素进行索引的最佳方法是什么?

    是否有任何有效的方法可以用于比较两个字符串数组而无需检查每个元素 我尝试使用数组列表 构建对象 但没有一个没有显示出太大的效果 最后 要比较两个字符串 序列 表示字符序列 没有任何提高效率的技巧 你必须somehow遍历两个序列并逐个元素进