/**
* 对象比较大小compare的用法 字符串排序
* 练习代码, 给定字符串" nba" "cba" "ncaa" "wba" ... 思路:
1.排序,想到数组的排序.数组排序想到选择排序,或者冒泡排序
2.用数组排序的思路做此题.(字符串同理)
3.遍历数组,比较每一个元素与下一个元素的大小关系
4.最后交换两个元素位置
5.输出结果 经过学习总结:
1.String本身是不具备比较大小功能的,但是由于String对象实现了
Comparable的接口.这个接口是可比较功能的接口.这里定义了比较方法compareTo方法.
Api手册中的描述:
此接口强行对实现它的每个类的对象进行整体排序。
这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法 2.所以如果我们定义了一个类,这个类产生的对象,想要比大小时,我们就不用自己写方法了,
直接实现Comparable接口,重写compareTo方法就可以了.注:本题中String类已经重写了
comparTo方法. 3.
该方法比较对象 与 指定对象的 顺序
写法:
campareTo(T o);
返回值: int 返回 0(两者相等),负数(对象小于参数),正数 (对象大于参数)
参数: o 为要比较的对象 */
public class CompareTo{ public static void main(String[] args) {
String[] str = {"nba","cba" ,"ncaa" ,"wba","ccba","abc"};
printArr(str);
strSort(str); //练习排序方法
// Arrays.sort(str); 排序用法
printArr(str); } /**
* 对字符串进行由小到大排序
* @param str String[] 需要排序的字符串数组
*/
public static void strSort(String[] str){
for (int i = 0; i < str.length; i++) {
for (int j = i+1; j < str.length; j++) {
if(str[i].compareTo(str[j])>0){ //对象排序用camparTo方法
swap(str,i,j);
}
}
} }
/**
* 交换两个元素的位置的方法
* @param strSort 需要交换元素的数组
* @param i 索引i
* @param j 索引j
*/
private static void swap(String[] strSort, int i, int j) {
String t = strSort[i];
strSort[i] = strSort[j];
strSort[j] = t;
}
/**
* 打印字符串数组
* @param str
*/
private static void printArr(String[] str) {
for (int i = 0; i < str.length; i++) {
System.out.print(str[i]+"\t");
}
System.out.println();
} }

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. bzoj 3100 排列

    题目大意: 给你长度为 \(1e6\) 的序列, 求最大的 \(K\) 使得序列中含有一个 \(K\) 的排列 做法: 性质: 区间包含1, 元素不重, 区间最大值=区间长度 枚举一个 \(1\) 让 ...

  2. NYOJ 211 Cow Contest (弗洛伊德+传递闭包 )

    title: Cow Contest 弗洛伊德+传递闭包 nyoj211 tags: [弗洛伊德,传递闭包] 题目链接 描述 N (1 ≤ N ≤ 100) cows, conveniently nu ...

  3. Kali Linux中前十名的Wifi攻击工具

    无 线网络的攻与防一直是比较热门的话题,由于无线信号可以被一定范围内的任何人接收到(包括死黑阔),这样就给WIFI带来了安全隐患:路由器生产厂商和网 络服务供应商(ISPs)的配置大多是默认开启了WP ...

  4. Linux 格式化磁盘命令mkfs

      linux格式化磁盘命令          mkfs        指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-options] f ...

  5. 培训补坑(day7:线段树的区间修改与运用)(day6是测试,测试题解以后补坑QAQ)

    补坑咯~ 今天围绕的是一个神奇的数据结构:线段树.(感觉叫做区间树也挺科学的.) 线段树,顾名思义就是用来查找一段区间内的最大值,最小值,区间和等等元素. 那么这个线段树有什么优势呢? 比如我们要多次 ...

  6. (转)自动安装VIM插件

    转自: http://xwz.me/wiki/doku.php?id=vim:plugins 我的插件列表 把下面GetLatestVimScripts.dat放进~/.vim/GetLatest/目 ...

  7. python Nosql-redis 连接、管道

    非关系型数据库和关系型数据库的差别: 非关系型数据库的优势: 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高. 可扩展性同样也是因为基于 ...

  8. 【SQL】数据库更新

    1.插入 INSERT INTO R(A1,A2,...An) VALUES(v1, v2, ...,vn) 如果插入了所有属性,并且按照定义的顺序给出,可以省略(A1,A2,...An) 可以只插入 ...

  9. elasticSearch script api

    Package org.elasticsearch.script Support for running user provided scripts (in the request, in clust ...

  10. setCharacterEncoding 和 setContentType

    request.setCharacterEncoding("gbk"); response.setContentType("text/html;charset=gbk&q ...