java通过Comparable接口实现字符串比较大小排序的简单实例
/**
* 对象比较大小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接口实现字符串比较大小排序的简单实例的更多相关文章
- java实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
原文地址https://segmentfault.com/a/1190000005738975 实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 ...
- Java之comparable接口
comparable 接口: 1. 问题:java.util.Collections 类中的方法 Collections.sort(List list) 是根据什么确定容器中对象的“大小”顺序的? 2 ...
- 12.Java中Comparable接口,Readable接口和Iterable接口
1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass> ...
- java比较器Comparable接口和Comaprator接口
Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compar ...
- java.lang.Comparable接口
转自:http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 接口 作者: zccst java.lang.Co ...
- Java的Comparable接口的一个陷阱
转载自:http://my.oschina.net/jack230230/blog/56339 Java的Comparable接口提供一个对实现了这个接口的对象列表进行排序的办法.原始的排序对于简单的 ...
- Java的Comparable接口
Comparable接口提供比较对象大小功能,实现了此接口的类的对象比较大小将通过接口提供的compareTo方法. 此方法的返回int类型,分三种情况. 返回正数,当前对象大于目标对象 返回负数,当 ...
- Java中XML格式的字符串4读取方式的简单比较
Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...
- Java之Comparable接口和Comparator接口
Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: ...
随机推荐
- mybatis基本流程、jdbc连接、ps:附mybatis(乐观锁)实现
一.前言 Mybatis和Hibernate一样,是一个优秀的持久层框架.已经说过很多次了,原生的jdbc操作存在大量的重复性代码(如注册驱动,创建连接,创建statement,结果集检测等).框架的 ...
- EL遍历集合
jstl EL表达式遍历集合 博客分类: JSTL/EL JSTLEL遍历集合 在EL中,方括号运算符用来检索数组和集合的元素.对于实现 java.util.Map 接口的集合,方括号运算符使用关联 ...
- eclipse更改web项目的WebContent目录
在使用eclipse 中 , 相信大家比我更是轻车熟路了 ( 我平常一般用 Intellij idea 的 ), 下面讲解一下在eclipse web项目中 , 如何设置 webroot 目录指向问题 ...
- [BZOJ2502]清理雪道解题报告|带下界的最小流
滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向. 你的团队负责每周定时清理雪道.你们拥有一架直升飞机,每次飞 ...
- 网络流专题练习Day2
04/17 目前做了:题 由于目前六道都是1A感觉非常爽... BZOJ1412: [ZJOI2009]狼和羊的故事 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向 ...
- NYOJ 115 城市平乱 (最短路)
* 题目链接* 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M. 现在,小工军师告诉南将军,第K号城市发生了暴乱,南 ...
- iOS推送原理和证书生成简介
1. 推送流程: Provider: 我们自己的后台服务器: APNS: 苹果的消息推送服务器 (1) 当Provider有消息要推送给手机的时候,先将消息和deviceToken等字段发送到APNS ...
- jQuery鼠标悬停文字渐隐渐现动画效果
jQuery鼠标悬停文字渐隐渐现动画效果 当时是做项目的时候用到的所以图片有些大,九张,真正要做图片不需要这么大 css样式 <style> *{ margin: 0; padding: ...
- HTML-坦克大战-完成子弹连发功能(三)
如题,完成子弹连发功能,上一篇博客遗留的问题,不能够连发,且一直按J键则第一颗子弹会消失:那是因为定义的子弹变量只是一个变量,现在定义成一个数组:在之前的代码上修改如下: <!DOCTYPE h ...
- [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...