|
在项目中经常可能遇到按照年份排序,按照姓名排序等等一些情况,下面一个实例,针对集合中元素进行排序. 首先一个User.java类,代码如下: package com.fuxi3; public class User { private int age; private String name; public User(int age, String name) { super(); this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 然后写一个排序的单独类,这个类实现Comparator接口,代码如下: package com.fuxi3; import java.util.Comparator; public class ComparatorTest implements Comparator{ public int compare(Object o1, Object o2) { User u1=(User)o1; User u2=(User)o2; //按年龄排序 if(u1.getAge()>u2.getAge()) return 1; if(u1.getAge()==u2.getAge()) return 0; else return -1; //按姓名排序 // if(u1.getName().compareTo(u2.getName())>0) // return 1; // if(u1.getName().compareTo(u2.getName())==0) // return 0; // else // return -1; } } 最后一个集合操作类,对集合中元素进行排序,代码如下: package com.fuxi3; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class CollectionDemo{ public static void test(){ List<User> list=new ArrayList<User>(); list.add(new User(30,"aa")); list.add(new User(55,"ee")); list.add(new User(3,"cc")); Collections.sort(list,new ComparatorTest()); for (User user : list) { System.out.println(user.getName()+"的年龄为"+user.getAge()); } } public static void main(String[] args) { test(); } } OK,输出结果如下: cc的年龄为3 aa的年龄为30 ee的年龄为55 比较下看看,是不是已经按年龄排好序咯.^_^
|
一共有 0 条评论