Java中的2种集合排序方法介绍
2023-06-13 09:15:28 时间
直接上代码:
importjava.util.ArrayList; importjava.util.Collections; importjava.util.Comparator; importjava.util.List; /** * *<p> *ClassNameCollectionsSort *</p> *<p> *Description主要介绍两种集合的排序算法<br/> *第一:java.util.Collections.sort(java.util.List),要求所排序元素必须实现java.lang.Comparable接口<br/> *第二:java.util.Collections.sort(java.util.List,java.util.Comparator),这个方法要求实现java.util.Comparator接口<br/> *第三:下面的例子使用的是对int型属性排序,对String属性排序可以使用以下方法<br/> *publicintcompareTo(Cato){returnthis.getName().compareTo(o.getName(0);}<br/> *第四:compareTo()函数的说明<br/> *如果结果;<br/> *<0a<b;<br/>= *==0a==b;<br/> *>=0a>b; *</p> * *@authorwangxuwangx89@126.com *<p> *Date2014-9-16下午04:52:57 *</p> *@versionV1.0 * */ publicclassCollectionsSort{ publicstaticvoidmain(String[]args){ //method1();测试第一个方法 method2();//测试第二个方法 } publicstaticvoidmethod1(){ List<Cat>list=newArrayList<Cat>(); Catc=newCat("a",10); list.add(c); c=newCat("b",20); list.add(c); c=newCat("c",3); list.add(c); //升序排列输出 Collections.sort(list); System.out.println(list); //降序排列输出 Collections.sort(list,Collections.reverseOrder()); System.out.println(list); } publicstaticvoidmethod2(){ List<Cat>list=newArrayList<Cat>(); Catc=newCat("a",10); list.add(c); c=newCat("b",20); list.add(c); c=newCat("c",3); list.add(c); Comparator<Cat>catComparator=newCat(); //升序排列输出 Collections.sort(list,catComparator); System.out.println(list); //降序排列输出 catComparator=Collections.reverseOrder(catComparator); Collections.sort(list,catComparator); System.out.println(list); } } classCatimplementsComparable<Cat>,Comparator<Cat>{ privateintage; privateStringname; publicCat(){ } publicCat(Stringname,intage){ this.age=age; this.name=name; } publicintgetAge(){ returnthis.age; } publicStringgetName(){ returnthis.name; } publicvoidsetAge(intage){ this.age=age; } publicvoidsetName(Stringname){ this.name=name; } //实现了Comparable接口,不要重写该方法 @Override publicintcompareTo(Cato){ //TODOAuto-generatedmethodstub returnthis.age-o.age; } @Override publicStringtoString(){ //TODOAuto-generatedmethodstub return"名字:"+getName()+",年龄:"+getAge(); } //实现了Comparator接口,需要重写该方法 @Override publicintcompare(Cato1,Cato2){ //TODOAuto-generatedmethodstub returno1.getAge()-o2.getAge(); } }
相关文章
- java 四舍五入运算_JAVA正确的四舍五入方法「建议收藏」
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- java指定长度数组长度_Java声明数组时不能指定其长度[通俗易懂]
- java 异步调用接口_Java接口异步调用[通俗易懂]
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一「建议收藏」
- java集合类面试题_Java集合类相关面试题
- java启动器_JAVA基础:Java 启动器如何查找类
- java获取服务器路径_Java获取此次请求URL以及服务器根路径的方法「建议收藏」
- java无法获取服务器上路径,JAVA获取服务器路径的步骤
- java 随机数算法_Java随机数算法原理与实现方法实例详解
- 【说站】java静态方法和实例方法的区别
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例「建议收藏」
- Java集合面试题_java是什么
- Java截取字符串方法_java通过split截取字符串
- java 设置400错误_Java项目报400错误的原因与解决方法
- java查找字符的方法_Java字符串查找(3种方法)
- Java的main方法是如何被调用的
- java获取Spring中的bean方法总结详解编程语言
- 终止java线程的2种方法详解编程语言
- 解决Java程序连接MySQL数据库的方法(java链接mysql数据库)
- Java Set.remove()方法:移除Set集合中的指定对象
- Java Map.putAll()方法:追加另一个Map对象到当前Map集合
- Linux重装Java:给你的操作系统新的灵魂(linux重装java)
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- 时间解决java使用Redis设置失效时间的方法(redisjava过期)
- java读写二进制文件的解决方法