当前位置: 首页 > 面试题库 >

长度有限的java.util.Arrays.equals()

薛兴言
2023-03-14
问题内容

我需要比较两个byte
[]数组的元素,但只能比较固定长度。对于整个数组,我使用java.util.Arrays.equals()。当然,我可以复制子范围(Arrays.copyOf()),但我不想这样做。我也肯定应该有标准的方法来执行此操作,而无需执行新的实用程序方法。

我正式需要的是这样的:

java.util.Arrays.equals(byte[] a, byte [] b, int length)

有什么众所周知的东西吗?我看不到广泛使用的方法。

关于防止错误答案的要求:-数组等于长度限制。-我有手动执行功能,但我想将其替换为标准功能。-我不要任何副本。

先感谢您。


问题答案:

ByteBuffer提供的功能类似于@meriton提出的功能,但可以与原语一起使用。这是说明性代码

import java.nio.ByteBuffer;

public class Main {

    public static void main(String [] args) throws Exception {

        byte [] a1 = {0, 1, 0, 1};
        byte [] a2 = {0, 0, 1, 0};

        boolean eq = ByteBuffer.wrap(a1,0,3).equals(ByteBuffer.wrap(a2,1,3));
        System.out.println("equal: " + eq);
    }
}

@meriton属性的答案:

  • 结果是具有使用它们的全部功能的收集。
  • 实际上,它是某种复制(但不是完整的)。
  • 需要引用,原语不能以这种方式包装。

这个答案很特别。

  • 后端阵列不以任何方式改变。ByteBuffer.array()返回对原始数组的引用(可能是缺点,可能是优点)。
  • 它适用于原语。


 类似资料:
  • 如果我想将char数组中的前3个字符作为双精度字符进行解析,而忽略以下字符,那么我真的需要这样做吗? 难道没有一个像这样的函数允许您指定它应该搜索的数字的最大字符串长度吗? 编辑:我希望它打印(它目前这样做),而不是!

  • Java包名称的名称长度有限制吗? 就像包裹com.abc.xxx.xxxx.xxxx

  • 问题内容: HTML中的属性值需要多长时间? 我在一个新的应用程序中使用HTML5样式数据属性(),并且在一个地方存储大量数据(最多100个字符)非常方便。虽然我怀疑这笔钱是可以的,但它提出了多少是太多的问题? 问题答案: HTML 4 从HTML 4的角度来看,属性是SGML构造。它们的限制在HTML4的SGML声明中定义: 这里讨论的值是“ ATTSPLEN”,这是元素的属性规范列表的限制(应

  • 问题内容: 我正在使用Redis列表,并将新项目推送到列表中。问题是我真的只需要列表中最近的10个项目。 我用来将项目添加到列表中并获取最新的10。 反正有一定数量的物品掉落吗?我将得到可能包含1,000个项目的列表,这些列表可能导致延迟带来的性能问题。 谢谢! 问题答案: 每次之后,调用将列表修剪为10个元素 参见http://redis.io/commands/ltrim

  • 问题内容: 这个问题出现在Spring类中,该类具有相当长的类名称。类名长度的语言是否有限制? 问题答案: 在Java语言规范指出标识符的长度不受限制。 但是实际上,文件系统将限制生成的文件名的长度。

  • 问题内容: 我问这个问题是因为我需要在我的PHP脚本中生成 SELECT 查询时知道此限制,并且此查询中的 WHERE 部分是在循环内生成的。 恰好看起来像这样 因此,这就是为什么我需要知道我的 $ query 字符串可以有多长的原因,因为数组 $ uol_metadata_arr 可以包含许多项目。 问题答案: (如果可能)使用 您可能需要增加max_allowed_pa​​cket。它默认为1