Java中List的排序

作者: _Justin | 来源:发表于2016-03-27 23:43 被阅读160次

一、第一种方法

list中对象实现Comparable接口,代码如下:

public class Person implements Comparable<Person> {
   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;
   }
  @Override
  public int compareTo(Person arg0) {
    return this.getOrder().compareTo(arg0.getOrder());
   }

}


public static void main(String[] args) {
   List<Person> listA = new ArrayList<Person>();
  Person p1 = new Person();
  Person p2 = new Person();
  Person p3 = new Person();
  p1.setName("name1");
  p1.setOrder(1);
  p2.setName("name2");
  p2.setOrder(2);
  p3.setName("name3");
  p3.setOrder(3);

listA.add(p2);
  listA.add(p1);
  listA.add(p3);
  Collections.sort(listA);
   for (Person p : listA) {
     System.out.println(p.getName());
  }
}

第二种方法

重载Collections.sort方法,代码如下:

public class Person {

private String name;
private Integer order;

/**
 * @return the name
 */
public String getName() {
    return name;
}

/**
 * @param name
 *            the name to set
 */
public void setName(String name) {
    this.name = name;
}

/**
 * @return the order
 */
public Integer getOrder() {
    return order;
}

/**
 * @param order
 *            the order to set
 */
public void setOrder(Integer order) {
    this.order = order;
}}

    public static void main(String[] args) {

    List<Person> listA = new ArrayList<Person>();
    Person p1 = new Person();
    Person p2 = new Person();
    Person p3 = new Person();

    p1.setName("name1");
    p1.setOrder(1);
    p2.setName("name2");
    p2.setOrder(2);
    p3.setName("name3");
    p3.setOrder(3);

    listA.add(p2);
    listA.add(p1);
    listA.add(p3);
     
    Collections.sort(listA, new Comparator<Person>() {
        public int compare(Person arg0, Person arg1) {
            return arg0.getOrder().compareTo(arg1.getOrder());
        }
    });
     
    for (Person p : listA) {
        System.out.println(p.getName());
    }
}

两次执行的结果都是:

name1

name2

name3

相关文章

网友评论

    本文标题:Java中List的排序

    本文链接:https://www.haomeiwen.com/subject/rirjlttx.html