1. /**
  2. * 对象比较大小compare的用法 字符串排序
  3. * 练习代码, 给定字符串" nba" "cba" "ncaa" "wba" ...
  4.  
  5. 思路:
  6. 1.排序,想到数组的排序.数组排序想到选择排序,或者冒泡排序
  7. 2.用数组排序的思路做此题.(字符串同理)
  8. 3.遍历数组,比较每一个元素与下一个元素的大小关系
  9. 4.最后交换两个元素位置
  10. 5.输出结果
  11.  
  12. 经过学习总结:
  13. 1.String本身是不具备比较大小功能的,但是由于String对象实现了
  14. Comparable的接口.这个接口是可比较功能的接口.这里定义了比较方法compareTo方法.
  15. Api手册中的描述:
  16. 此接口强行对实现它的每个类的对象进行整体排序。
  17. 这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法
  18.  
  19. 2.所以如果我们定义了一个类,这个类产生的对象,想要比大小时,我们就不用自己写方法了,
  20. 直接实现Comparable接口,重写compareTo方法就可以了.注:本题中String类已经重写了
  21. comparTo方法.
  22.  
  23. 3.
  24. 该方法比较对象 与 指定对象的 顺序
  25. 写法:
  26. campareTo(T o);
  27. 返回值: int 返回 0(两者相等),负数(对象小于参数),正数 (对象大于参数)
  28. 参数: o 为要比较的对象
  29.  
  30. */
  31. public class CompareTo{
  32.  
  33. public static void main(String[] args) {
  34. String[] str = {"nba","cba" ,"ncaa" ,"wba","ccba","abc"};
  35. printArr(str);
  36. strSort(str); //练习排序方法
  37. // Arrays.sort(str); 排序用法
  38. printArr(str);
  39.  
  40. }
  41.  
  42. /**
  43. * 对字符串进行由小到大排序
  44. * @param str String[] 需要排序的字符串数组
  45. */
  46. public static void strSort(String[] str){
  47. for (int i = 0; i < str.length; i++) {
  48. for (int j = i+1; j < str.length; j++) {
  49. if(str[i].compareTo(str[j])>0){ //对象排序用camparTo方法
  50. swap(str,i,j);
  51. }
  52. }
  53. }
  54.  
  55. }
  56. /**
  57. * 交换两个元素的位置的方法
  58. * @param strSort 需要交换元素的数组
  59. * @param i 索引i
  60. * @param j 索引j
  61. */
  62. private static void swap(String[] strSort, int i, int j) {
  63. String t = strSort[i];
  64. strSort[i] = strSort[j];
  65. strSort[j] = t;
  66. }
  67. /**
  68. * 打印字符串数组
  69. * @param str
  70. */
  71. private static void printArr(String[] str) {
  72. for (int i = 0; i < str.length; i++) {
  73. System.out.print(str[i]+"\t");
  74. }
  75. System.out.println();
  76. }
  77.  
  78. }

java通过Comparable接口实现字符串比较大小排序的简单实例的更多相关文章

  1. java实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法

    原文地址https://segmentfault.com/a/1190000005738975 实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 ...

  2. Java之comparable接口

    comparable 接口: 1. 问题:java.util.Collections 类中的方法 Collections.sort(List list) 是根据什么确定容器中对象的“大小”顺序的? 2 ...

  3. 12.Java中Comparable接口,Readable接口和Iterable接口

    1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass> ...

  4. java比较器Comparable接口和Comaprator接口

    Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compar ...

  5. java.lang.Comparable接口

    转自:http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 接口 作者: zccst java.lang.Co ...

  6. Java的Comparable接口的一个陷阱

    转载自:http://my.oschina.net/jack230230/blog/56339 Java的Comparable接口提供一个对实现了这个接口的对象列表进行排序的办法.原始的排序对于简单的 ...

  7. Java的Comparable接口

    Comparable接口提供比较对象大小功能,实现了此接口的类的对象比较大小将通过接口提供的compareTo方法. 此方法的返回int类型,分三种情况. 返回正数,当前对象大于目标对象 返回负数,当 ...

  8. Java中XML格式的字符串4读取方式的简单比较

    Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...

  9. Java之Comparable接口和Comparator接口

    Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: ...

随机推荐

  1. 【Foreign】远行 [LCT]

    远行 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output Sample Input 0 5 10 1 4 5 2 3 2 ...

  2. 【Foreign】魔法 [组合数][质因数分解]

    魔法 Time Limit: 10 Sec  Memory Limit: 256 MB Description Input Output 仅一行一个整数表示答案. Sample Input 4 10 ...

  3. 谈数据中心SDN与NFV

    看到一篇谈论SDN与NFV的文章,分析的还不错,贴过来方便自己后续查阅: http://network.chinabyte.com/175/13095675.shtml 论数据中心SDN与NFV技术关 ...

  4. NYOJ 170 网络的可靠性 (数学)

    题目链接 描述 A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商.它将提供先进的网络协作技术,展示其"智能+互联"的生活概念,同时为参观者提供高品质的个人体 ...

  5. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

  6. How to learn wxPython

    目录 How to learn wxPython Learn Python Choose a good editor Install wxPython Read the wxPython tutori ...

  7. OSI和TCP/IP的对比+IP地址分类

    一.OSI和TCP/IP对比 二.IP地址分类 A类私有IP地址:10.0.0.0-10.255.255.255B类私有IP地址:172.16.0.0-172.31.255.255C类私有IP地址:1 ...

  8. mysql索引语法及示例

    注:本篇文章是对菜鸟教程中的mysql索引(http://www.runoob.com/mysql/mysql-index.html)的翻译版本:添加了示例,便于理解: 索引分单列索引和组合索引.单列 ...

  9. hdu 5185(动态规划)

    Equation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  10. Android 曲线动画animation,类似加入购物车动画

    按照惯例先放效果图:图中小球做抛物线运动 资源图片 1.首先布局文件activity_main.xml,布局很简单,就一个测试按钮 <RelativeLayout xmlns:android=& ...