java中compareTo源代码是怎么实现的
来源:互联网 发布:云主机 知乎 编辑:程序博客网 时间:2024/06/06 20:50
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; }
整个思路非常简单,跟字典排序是一样的,之所以代码看起来有点恶心是因为string类的存储有个offset变量掺和,如果没有这个东东,那每个string的value值有效起点都是从0开始,怎么对比就一目了然了,说白了就是两个字符串一个个字符对比过去,直到碰到第一个不同的字符,作差返回即可(这样满足负数表示第一个串小,0表示两串相等,正数表示第一串较大)。
- java中compareTo源代码是怎么实现的
- Java中的compareTo()函数是怎么用的?
- Java中compareto的用法
- java中compareTo的用法
- java中compareTo的用法
- 关于Java中compareTo方法的使用
- Java中compareTo用法
- Java中Object的使用:重载equals、hashCode及实现compareTo
- java treeset实现不重复存储的方式(在类对象中实例化CompareTo)
- java中hashcode是怎么算出来的?
- java中&和&&是怎么运算的
- Java String类中的compareTo源代码分析
- JAVA compareTo实现treeSet()排序
- JAVA菜鸟入门(12) reference variable是气球的线 +JVM中怎么实现
- Java 中 compareTo方法问题
- java中compareTo方法详解
- java中BigDecimal的equals与compareTo的区别
- java中equals和compareTo的区别---解惑
- JAVA annotation入门
- 获取swcsharpaddin.zip的方法
- JavaBean文件之间的关联方式
- 数据库迁移 总结
- Dede如何使用UEditor编辑器
- java中compareTo源代码是怎么实现的
- careercup7
- 什么是Windows API
- posix线程(1)
- Java程序员从笨鸟到菜鸟之(三十九)大话设计模式(七)代理模式和java动态代理机制
- window下cygwin完全卸载办法
- Exchange 2003 升级到Exchange 2010 之申请证书并分配服务!
- 42招健脑秘笈——必看
- Web 2.0简介