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 是在集合外部实现的排序: ...
随机推荐
- POJ1286 Necklace of Beads
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8263 Accepted: 3452 Description Beads ...
- vue this.$router.push 页面不刷新
解决办法: 使用 watch,观察路由,发生变化重新获取数据 <script> export default { data() { return { data: {} } }, metho ...
- 填坑webpack
1.Concepts: webpack is a module bundler for modern JS applications. Since there are lots of complex ...
- [Leetcode Week3]Clone Graph
Clone Graph题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/clone-graph/description/ Description Clon ...
- 【转】Linux Futex的设计与实现
引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序" ...
- appium===元素定位
一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...
- pm2笔记
概述 pm2是一个进程管理工具.使用pm2部署NodeJS服务可以轻松实现负载均衡. 指定用户启动 pm2启动时会指定一个PM2_HOME目录,作为存放日志文件.rpc.sock文件,默认情况下会PM ...
- niceScroll在ie11和edge浏览器上面滚动时抖动问题
niceScroll 是一个很好的jquery插件,相信很多人都用过,我们项目中使用的是3.7.6版本的,一般我们在开发的时候都是使用的火狐或者是谷歌浏览器,使用 niceScroll 没有什么问题, ...
- ie_placeholder最佳兼容方案
https://gitee.com/hustcc/placeholder.js巧妙的使用了canvas.toDataURL(),动态生成了一个背景图,可以作为兼容IE9-的placeholder方案. ...
- lucene5 实时搜索
openIfChanged public static DirectoryReader openIfChanged(DirectoryReader oldReader) throws IOExcept ...