赞
踩
3. 获得排序后的List。
具体算法如下:
Java 代码
- import java.util.Date;
-
- /**
- * 需要排序的bean对象。
- * 插入数据时 按照自定义的方式有序排放
- * @author Lucky
- * 日期:2014-10-30
- */
- public class ComparableBean implements Comparable<ComparableBean> {
-
- private int id;
-
- private String name;
-
- private Date birthday;
-
- public Date getBirthday() {
- return birthday;
- }
-
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
-
- /*
- * 按照id从大到到小的顺序排序。 自己可以在方法里面编写任意的排序算法。
- */
- public int compareTo(ComparableBean o) {
- // 根据名字从小到大顺序:if(String.CASE_INSENSITIVE_ORDER.compare(getName(), o.getName()) > 0)
- // 根据生日从小到大顺序:if (this.birthday.compareTo(o.getBirthday()) > 0)
- // 根据ID从小到大顺序。
- if(this.getId() > o.getId()){
- return 1;
- }else {
- return -1;
- }
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- return getId() + " : " + getName() + " : " + getBirthday().toString();
- }
- }

排序和测试类:
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- import java.util.Random;
-
- public class TestComparable {
-
- private TestComparable() {
- ComparableBean cbean;
- Random rand = new Random();
- List<ComparableBean> beans = new ArrayList<ComparableBean>();
- for (int i = 0; i < 100; i++) {
- cbean = new ComparableBean();
- cbean.setId(rand.nextInt(10000));
- cbean.setBirthday(new Date());
- cbean.setName("TestName" + rand.nextInt(1000));
- beans.add(cbean);
- }
-
- Object[] beanObjects = beans.toArray();
- Arrays.sort(beanObjects);
-
- beans.removeAll(beans);
- System.out.println(beans.size());
-
- for (int i = 0; i < 100; i++) {
- System.out.println(beanObjects[i]);
- }
-
- System.out.println("ok");
- }
-
- public static void main(String[] args) {
- new TestComparable();
- }
-
- }
-

运行结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。