这篇文章主要讲解了“Java中怎么比较2个数组相等以及检出不匹配项”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中怎么比较2个数组相等以及检出不匹配项”吧!提问:“如何比较 2 个数组相等以及如何检出不匹配项?”严格意义上讲,这是 2 个问题,其一是比较数组是否相等,其二是如果数组不相等,是哪几个元素导致的。01、比较数组是否相等可以通过 Arrays.equals() 方法来比较 2 个数组是否相等,数组可以是基本数据类型,也可以是引用数据类型,以及泛型。我们就先拿字符串来作为示例吧。现在,就让我们来比较一下:str1 是否与 str2 相等,str1 是否与 str3 相等。(尽管不用代码比较你都能猜出答案,但还是请假装配合一下)程序输出的结果如下所示:不错不错,和我们的预期完全相符。另外,我们还可以通过以下方法来判断 2 个数组中指定的范围是否相等:来比较一下 str1 和 str3 中前 3 个元素是否相等:程序输出的结果如下所示:现在,让我们来自定义一个类 Writer,它有两个字段:int 类型的 age,和 String 类型的 name,并重写了 equals() 和 hashCode() 方法。来创建 3 个 Writer 类型的数组:我们来比较一下:writer1 是否与 writer2 相等,writer1 是否与 writer3 相等。程序输出的结果如下所示:答案完全符合预期,因为我们重写了 equals() 方法——如果 age 相等,name 相等,那就表明 2 个 Writer 对象相等。假如我们没有重写该方法,此时就可以借助 Comparator 比较器。byAge 是通过 Writer 的 age 比较的,byName 是通过 Writer 的 name 比较的。然后我们来通过比较器 byAge 和 byName 比较一下 writer1 和 writer3。程序输出的结果如下所示:答案完全符合预期,writer1 数组中的 age(18 和 16)和 writer3 数组中的 age(18 和 16)完全相同;writer1 数组中的 name(沉默王二和沉默王三)和 writer3 数组中的 name(沉默王一和沉默王三)不完全相同。02、检出不匹配项可以通过 Arrays.mismatch() 方法检出 2 个数组中哪几个元素不相等。如果 2 个数组完全相等,该方法免费云主机域名返回 -1;否则的话,返回第一个不匹配项目的下标。先来看看 str1 和 str2 是否有不相等的元素吧。程序输出的结果如下所示:和我们预期的结果一致,因为 str1 和 str2 没有不匹配项。那再来看看 str1 和 str3 吧。程序输出的结果如下所示:的确是从下标为 3 的元素开始不匹配的,因为 str1 中下标为 3 的元素为“二”,str3 中下标为 3 的元素为“三”。Arrays.mismatch() 方法同样适用于自定义类型 Writer。程序输出的结果如下所示:和我们预期的结果一致,因为 writer1 和 writer2 没有不匹配项,writer1 和 writer3 不相等的元素是从第 1 开始的,下标为 0。也可以通过 Comparator 来检出不相等的元素:程序输出的结果如下所示:感谢各位的阅读,以上就是“Java中怎么比较2个数组相等以及检出不匹配项”的内容了,经过本文的学习后,相信大家对Java中怎么比较2个数组相等以及检出不匹配项这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇文章主要介绍了MyBatis执行流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以免费云主机域名参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。