124_容器_内置类比较_Comparable_排序工具类实现
来源:互联网 发布:java源码分析书籍 编辑:程序博客网 时间:2024/05/21 11:23
- _1_InnerTypeCompare
package collection.sort.comparable;import java.util.Date;/** * 内置引用数据类型(常用)的比较 */public class _1_InnerTypeCompare { public static void main(String[] args) { @SuppressWarnings("unused") Integer a ; //根据基本数据类型大小 @SuppressWarnings("unused") Character ch; //根据Unicode编码顺序 String str="abc"; //如果其中一个是例外一个起始开始的子串,返回长度之差 String str2 ="abcd123"; //否则返回第一个不相等的unicode码之差 System.out.println(str.compareTo(str2)); str ="abc"; str2 ="aad"; System.out.println(str.compareTo(str2)); @SuppressWarnings("unused") Date d ; //根据日期的长整形数比较 }}
- _2_StringArraySort
package collection.sort.comparable;import java.util.Arrays;public class _2_StringArraySort { public static void main(String[] args) { String[] arr ={"a","abcd","abc","def"}; //从大到小排序 降序 boolean sorted= true; int len =arr.length; for(int j=0;j<len-1;j++){ //趟数 sorted =true; //假定有序 for(int i=0;i<len-1-j;i++){ //次数 if((arr[i]).compareTo(arr[i+1])<0){ String temp = arr[i]; arr[i] =arr[i+1]; arr[i+1] =temp; sorted =false; //假定失败 } } if(sorted){ //减少趟数 break; } } System.out.println(Arrays.toString(arr)); }}
- _3_DateArraySort
package collection.sort.comparable;import java.util.Arrays;import java.util.Date;public class _3_DateArraySort { public static void main(String[] args) { Date arr[] =new Date[3]; arr[0] =new Date(); arr[1] =new Date(System.currentTimeMillis()-1000*60*60); arr[2] =new Date(System.currentTimeMillis()+1000*60*60); //从大到小排序 降序 boolean sorted= true; int len =arr.length; for(int j=0;j<len-1;j++){ //趟数 sorted =true; //假定有序 for(int i=0;i<len-1-j;i++){ //次数 if((arr[i]).compareTo(arr[i+1])<0){ Date temp = arr[i]; arr[i] =arr[i+1]; arr[i+1] =temp; sorted =false; //假定失败 } } if(sorted){ //减少趟数 break; } } System.out.println(Arrays.toString(arr)); }}
- CompareUtils
package collection.sort.comparable;import java.util.List;public class CompareUtils { /** * 数组的排序 (降序) * @param arr */ @SuppressWarnings("unchecked") public static void sort(Object[] arr){ //从大到小排序 降序 boolean sorted= true; int len =arr.length; for(int j=0;j<len-1;j++){ //趟数 sorted =true; //假定有序 for(int i=0;i<len-1-j;i++){ //次数 if(((Comparable<Object>)arr[i]).compareTo(arr[i+1])<0){ Object temp = arr[i]; arr[i] =arr[i+1]; arr[i+1] =temp; sorted =false; //假定失败 } } if(sorted){ //减少趟数 break; } } } /** * 数组降序排序 (使用泛型方法) */ public static <T extends Comparable<T>> void sort(T[] arr){ //从大到小排序 降序 boolean sorted= true; int len =arr.length; for(int j=0;j<len-1;j++){ //趟数 sorted =true; //假定有序 for(int i=0;i<len-1-j;i++){ //次数 if((arr[i]).compareTo(arr[i+1])<0){ T temp = arr[i]; arr[i] =arr[i+1]; arr[i+1] =temp; sorted =false; //假定失败 } } if(sorted){ //减少趟数 break; } } } /** * 容器排序 (使用泛型方法) */ @SuppressWarnings("unchecked") public static <T extends Comparable<T>> void sort(List<T> list){ //第一步:转成数组 Object[] arr =list.toArray(); sort(arr); //第二步:改变容器中对应的值 for(int i=0;i<arr.length;i++){ list.set(i, (T)(arr[i])); } }}
- ComparableImpl
package collection.sort.comparable;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.List;public class ComparableImpl { public static void main(String[] args) { //时间 Date[] arr =new Date[3]; arr[0] =new Date(); arr[1] =new Date(System.currentTimeMillis()-1000*60*60); arr[2] =new Date(System.currentTimeMillis()+1000*60*60); CompareUtils.sort(arr); //数组降序排序 (使用泛型方法) System.out.println(Arrays.toString(arr)); //字符串 String[] arr2 ={"a","abcd","abc","def"}; CompareUtils.sort(arr2);//数组降序排序 (使用泛型方法) System.out.println(Arrays.toString(arr2)); System.out.println("==========List排序==========="); //存放容器中 List<String> list =new ArrayList<String>(); list.add("a"); list.add("abcd"); list.add("abc"); list.add("def"); CompareUtils.sort(list);//容器排序 (使用泛型方法) System.out.println(list); }}
阅读全文
0 0
- 124_容器_内置类比较_Comparable_排序工具类实现
- 125_容器_内置类比较_Comparator_排序工具类实现
- 排序第二课,引用类型、内置类比较Comparable排序工具类实现
- 冒泡排序和内置类比较排序操作
- 106_容器_自己实现HashMap_MyMap原始版_效率较低
- java POJO实现类比较器Comparable的排序规则
- 126_容器_自定义数据排序
- 122-123_容器_排序_冒泡排序
- 128_容器_工具类Collections方法详解_洗牌
- 111_容器_自定义实现HashSet
- 127_容器_排序容器_TreeSet与TreeMap
- Java集合排序及java集合类详解:集合框架中常用类比较
- java基础知识_容器类
- 119_容器_自定义实现迭代器_深入迭代器_迭代器原理_面向对象实现
- jdk_Arrays类_排序方法_研究
- Python内置函数_数学运算类
- Python内置函数_集合操作类
- Python内置函数_逻辑判断类
- Inconvertible types:cannot
- 关于在学习过程中遇到的好坏教材的区别
- 算法与数据结构-常用排序算法总结2-计数排序
- HDU 6053 TrickGCD(枚举)
- css如何实现数字在图标上显示
- 124_容器_内置类比较_Comparable_排序工具类实现
- [SMOJ2100]打印机
- 125_容器_内置类比较_Comparator_排序工具类实现
- 算法入门经典:大理石在哪儿
- 126_容器_自定义数据排序
- Linux实施抢占补丁的研究与实践
- 有道词典在谷歌Chrome浏览器中无法取词的解决方法
- HDU-3954:Level up(特殊的线段树成段更新)
- 127_容器_排序容器_TreeSet与TreeMap