【源码之路】java中关于equals方法和compareTo方法
来源:互联网 发布:主力资金监控软件 编辑:程序博客网 时间:2024/06/11 08:58
关于equals都会经常用到,但是compareTo可能不会经常使用,这里不对两种方法的功能做过多解释,度娘一下出来一堆,直接上源码
equals源码:
public boolean equals(Object anObject) {if (this == anObject) {//这里提高效率 return true;}if (anObject instanceof String) {//这里提高效率 String anotherString = (String)anObject; int n = count; if (n == anotherString.count) {//这里提高效率char v1[] = value;char v2[] = anotherString.value;int i = offset;int j = anotherString.offset;while (n-- != 0) { if (v1[i++] != v2[j++])//关键这里return false;}return true; }}return false; }compareTo源码:
public int compareTo(String anotherString) {int len1 = count;int len2 = anotherString.count;int n = Math.min(len1, len2);char v1[] = value;char v2[] = anotherString.value;int i = offset;int j = anotherString.offset;if (i == j) { int k = i; int lim = n + i; while (k < lim) {char c1 = v1[k];char c2 = v2[k];if (c1 != c2) {//关键这里 return c1 - c2;}k++; }} else { while (n-- != 0) {char c1 = v1[i++];char c2 = v2[j++];if (c1 != c2) {//关键这里 return c1 - c2;} }}return len1 - len2; }
在“关键这里”可以看到两个方法都是对ASCII码的比较,只不过返回值不同。
所以在面试的过程中可以说一下字符串比较的原理,再顺便把compareTo说一下
阅读全文
0 0
- 【源码之路】java中关于equals方法和compareTo方法
- java中compareTo和compare方法之比较 | Java基础
- 关于Java中compareTo方法的使用
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- java中compareTo和compare方法之比较
- Android中实现view的更新有两组方法
- 在浏览器地址栏输入URL,按下回车后究竟发生了什么?
- 第三方控件bug
- Kolla安装Ocata 单节点
- leafletjs右键菜单
- 【源码之路】java中关于equals方法和compareTo方法
- HDU-1506 Largest Rectangle in a Histogram (线性dp 维护前后边界)
- HDU-2024(C语言合法标识符)
- 租售同权市场利好,梦享社区携手机智云落地政府城中村智能升级改造试点项目
- Service是android 系统中的一种组件
- Yarn(分布式协作服务)和Zookeeper(分布式资源管理器)之间的关系
- Thread、Handler与HandlerThread、Handler使用
- Ubuntu安装keras模块
- SQL Server中row_number的用法