Collections.sort方法(可以根据集合中类的属性的比较对集合内的类进行排序)
来源:互联网 发布:淘宝网黑盘羊沉香好吗 编辑:程序博客网 时间:2024/06/09 19:46
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的。
compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true。
a
b
第二种方法
是根据Collections.sort重载方法来实现
compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true。
Collections.sort(list, new Comparator(){重写的方法});的第二个参数返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序。
第一种方法
user类
/*** 根据order对User排序*/public 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()); }}测试类
Test
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()); } }}输出结果如下
a
b
第二种方法
是根据Collections.sort重载方法来实现
/*** 根据order对User排序*/public class User { //此处无需实现Comparable接口 private String name;
//如果想对此属性进行compareTo的方法 用int 类型将不能实现必须使用其包装类型 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; }}具体测试类(片段)
Collections.sort(list,new Comparator(){ public int compare(User arg0, User arg1) {<span style="white-space:pre"></span>//第一次比较专业 int i = arg0.getOrder().compareTo(arg1.getOrder());<span style="white-space:pre"></span>//如果专业相同则进行第二次比较 if(i==0){
//第二次比较 int j=arg0.getXXX().compareTo(arg1.getXXX());<span style="white-space:pre"></span>//如果学制相同则返回按年龄排序 if(j==0){ return arg0.getCCC().compareTo(arg1.getCCC()); } return j; } return i; } });
0 0
- Collections.sort方法(可以根据集合中类的属性的比较对集合内的类进行排序)
- 实体类集合(List<Object>)根据实体类的一个或者多个属性对集合进行排序-Collections.sort
- java-Collections的sort集合排序方法
- (好使)用Java集合中的Collections.sort方法对list排序的两种方法
- Java中应用Collections工具类的Sort()方法对List进行排序
- 使用Collections.sort对集合进行排序。
- 用Java集合中的Collections.sort方法对list排序的两种方法
- 用Java集合中的Collections.sort方法对list排序的两种方法
- 用Java集合中的Collections.sort方法对list排序的两种方法
- 用Java集合中的Collections.sort()方法对list排序的两种方法
- 用Java集合中的Collections.sort方法对list排序的两种方法
- 用Java集合中的Collections.sort方法对list排序的两种方法
- 集合工具类Collections.sort()排序方法
- JAVA中根据集合中对象属性排序的方法
- java的Collections.sort集合排序
- 集合类Collections.sort()的源码分析
- Java1.7通过collections类的sort方法对ArrayList进行排序无效的解决办法。
- Java-Collections的sort方法对list进行排序
- angularjs路由例子
- CentOS7 增加tomcat 启动,停止,使用systemctl进行配置
- web.config connectionStrings 数据库连接字符串的解释(转载)
- GAL GAME 汉化攻略 辅助篇1 破解工具篇
- C# 文件操作全收录
- Collections.sort方法(可以根据集合中类的属性的比较对集合内的类进行排序)
- Android float,int等与string的转换方法
- unique_ptr
- SSL通信过程抓包分析
- Spring定义的7种不同的事务传播行为
- java基础之多线程
- 1003. Emergency (25)
- UVA - 227 Puzzle
- GitHub Hacking