java Collections.sort()实现List排序的默认方法和自定义方法
来源:互联网 发布:淘宝分流是什么意思 编辑:程序博客网 时间:2024/06/04 20:34
1.java提供的默认list排序方法
例子程序如下:
package outputMml2;import java.text.Collator;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Test2 { public static void main( String[] args ) { List < String > list = new ArrayList(); list.add( "张三" ); list.add( "李四" ); list.add( "王二" ); // 升序 ,根据的汉字的拼音的字母排序的 Collections.sort( list, Collator.getInstance( java.util.Locale.CHINA ) ); for ( int i = 0; i < list.size(); i++ ) { System.out.print( list.get( i ) ); } System.out.println( "" ); // 降序 Collections.reverse( list );// 不指定排序规则时,也是按照字母的来排序的 for ( int i = 0; i < list.size(); i++ ) { System.out.print( list.get( i ) ); } }程序运行结果为:
李四王二张三张三王二李四
2. 自定义的排序规则
(1)实现Comparable接口,重写重写int compareTo(Object o)方法
package outputMml2;import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** 根据order对User排序*/class User implements Comparable < User > { private String name; private Integer order; public String getName() { return name; } public void setName( String name ) { this.name = name; } public Integer getOrder() { return order; } public void setOrder( Integer order ) { this.order = order; } public int compareTo( User arg0 ) { return this.getOrder().compareTo( arg0.getOrder() ); }}public class Test { public static void main( String[] args ) { User user1 = new User(); user1.setName( "a" ); user1.setOrder( 1 ); User user2 = new User(); user2.setName( "b" ); user2.setOrder( 2 ); List < User > list = new ArrayList < User >(); // 此处add user2再add user1 list.add( user2 ); list.add( user1 ); Collections.sort( list ); for ( User u : list ) { System.out.println( u.getName() ); } }}程序运行结果为:
ab
(2)实现Comparator接口,重写int compare(Object o1, Object o2)方法
package outputMml2;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/*** 根据order对User排序*/class User { // 此处无需实现Comparable接口 private String name; private Integer order; public String getName() { return name; } public void setName( String name ) { this.name = name; } public Integer getOrder() { return order; } public void setOrder( Integer order ) { this.order = order; }}public class Test { public static void main( String[] args ) { User user1 = new User(); user1.setName( "a" ); user1.setOrder( 1 ); User user2 = new User(); user2.setName( "b" ); user2.setOrder( 2 ); List < User > list = new ArrayList < User >(); list.add( user2 ); list.add( user1 ); Collections.sort( list, new Comparator < User >() { public int compare( User arg0, User arg1 ) { return arg0.getOrder().compareTo( arg1.getOrder() ); } } ); for ( User u : list ) { System.out.println( u.getName() ); } }}程序运行结果为:
ab
两种自定义的排序规则,前者代码结构简单,但是只能根据固定的属性排序,后者灵活,可以临时指定排序项,但是代码不够简洁易懂。
0 0
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- JAVA中Collections.sort()实现List排序的公共方法和自定义方法
- JAVA中Collections.sort()实现List排序的公共方法和自定义方法
- List自定义排序根据Collections.sort重载方法来实现
- Java List重载Collections.sort方法排序
- 使用Collections.sort()实现List正反排序的方法
- Java-Collections的sort方法对list进行排序
- java 中的 collections.sort() 方法对list的排序
- Java-Collections的sort方法对 list 进行排序
- List的排序方法:Collections.sort();
- Collections.sort对list的排序方法
- java-Collections的sort集合排序方法
- C++ cout输出技巧
- grunt和NPM简介
- ClassLoader
- 【Oracle数据库】Oracle数据库基础
- STM32 SPI 学习笔记
- java Collections.sort()实现List排序的默认方法和自定义方法
- Flex布局(1)
- maven生成可执行jar包
- Oracle命令
- hadoop shell命令汇总
- Linux 块设备驱动 (1)
- 神经网络与深度学习(第一章)(五)
- 查询无limit限制的实际记录数
- Redis实用教程之三---Redis数据结构与常用命令