Java 基础小知识二:使用Comparator 对ArrayList 进行排序
2013-08-26 13:32
615 查看
有时,我们需要对自定义对象的List按照一定规则进行排序,Comparator 是个比较方便的方式, 看一下小例子:
定义了一个User类,里边只有一个age属性:
public class User {
我们需要对一个User类的ArrayList按照年龄进行排序, 下面我们定义个ComparatorUser,让它实现Comparator接口并且重写compare方法,排序的规则就写在里边:
import java.util.Comparator;
public class ComparatorUser implements Comparator {
public int compare(Object arg0, Object arg1) {
User user0 = (User) arg0;
User user1 = (User) arg1;
return user0.getAge().compareTo(user1.getAge());
}
}
下面我们来进行一下测试:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionSortTest {
/**
* @param args
*/
public static void main(String[] args) {
List<User> userlist=new ArrayList();
userlist.add(new User("1"));
userlist.add(new User("5"));
userlist.add(new User("2"));
userlist.add(new User("4"));
userlist.add(new User("3"));
userlist.add(new User("6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge());
}
}
}调用Collections 的sort 方法,就可以了,一下是运行结果:
1
2
3
4
5
6
可以看到,userList已经正确排序了。
定义了一个User类,里边只有一个age属性:
public class User {
private String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } public User(String age){ this.age=age; } }
我们需要对一个User类的ArrayList按照年龄进行排序, 下面我们定义个ComparatorUser,让它实现Comparator接口并且重写compare方法,排序的规则就写在里边:
import java.util.Comparator;
public class ComparatorUser implements Comparator {
public int compare(Object arg0, Object arg1) {
User user0 = (User) arg0;
User user1 = (User) arg1;
return user0.getAge().compareTo(user1.getAge());
}
}
下面我们来进行一下测试:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionSortTest {
/**
* @param args
*/
public static void main(String[] args) {
List<User> userlist=new ArrayList();
userlist.add(new User("1"));
userlist.add(new User("5"));
userlist.add(new User("2"));
userlist.add(new User("4"));
userlist.add(new User("3"));
userlist.add(new User("6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge());
}
}
}调用Collections 的sort 方法,就可以了,一下是运行结果:
1
2
3
4
5
6
可以看到,userList已经正确排序了。
相关文章推荐
- 使用Comparator对ArrayList进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- [编写高质量代码:改善java程序的151个建议]建议73 使用Comparator进行排序
- Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- Java基础之一组有用的类——使用比较器对数组排序(TrySortingWithComparator)
- 使用Comparable和Comparator对Java集合对象进行排序
- Java基础知识强化58:把字符串中的字符进行排序的案例
- java 使用comparator接口对ArrayList排序无效
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例
- Java基础之泛型——使用二叉树进行排序(TryBinaryTree)
- java中使用sort()对ArrayList进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- 【java基础知识】使用javap对代码进行反汇编
- java使用Comparator根据list对象的属性进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- [改善Java代码]使用Comparator进行排序
- Java中,通过使用Collections.sort对ArrayList进行排序
- (java基础知识)HashMap排序,Comparator接口详解