gpt4 book ai didi

java - 比较字符串或字节数组是否更快?

转载 作者:可可西里 更新时间:2023-11-01 16:24:13 26 4
gpt4 key购买 nike

所以,这听起来像是一个奇怪的问题,但是比较 2 个字符串或 byte[](使用 Arrays.equals())是否更快?我正在使用 Hadoop/Hbase,我从 Hbase 获取 byte[] 作为值,我有一个传入的值。将我获取的值转换为 String 并进行比较会更快吗?或者将它们与字节数组进行比较?

最佳答案

如果不实际测试它,Array.equals() 似乎是您的 friend 。要创建一个字符串,您最终需要在 String 构造函数中复制字节数组,然后您必须解码 unicode,这涉及为默认 Unicode 编码创建解码器,并将字节数组转换为 char 数组,然后您必须做等于,这涉及遍历每个字符串中的每个字符。

因此,在 O() 类型的计算中,您已经必须读取数组中的每个字节才能转换为字符,所以我认为转换为字符串的复杂性更差。

更新:考虑到添加到问题中的评论,听起来您获得了一个 String 并使用它来与 MapReduce 作业中的多个结果进行比较。在这种情况下,似乎有一个输入字符串到字节的转换,以及它们的多个字节数组比较。这似乎比保留输入字符串并转换作业中返回的每个字节数组更快。

关于java - 比较字符串或字节数组是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7195632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com