一个比较简单的方法,实现Comparable<T>接口,并实现其方法compareTo(Test o)列入 public class Person implements Comparable<Person>{ public String kind; public int compareTo(Person person) { return this.kind.compareTo(person.kind); } } 这样就可以了
如果使用hql的话,后面加个 order by p.kind,如果列表已查出就使用 Collections.sort(List<T> yourlist, Comparator<? super T> c);
public static void main(String [] args){ List<Person> list = new ArrayList<Person>(); Person p = null; for(int i =106;i>96;i--){ p = new Person(); p.setId(i); p.setKind(String.valueOf((char) (i))); list.add(p); } Collections.sort(list, new PersonComparator()); for(Person tmp : list){ System.out.println(tmp.getKind()); System.out.println(tmp.getId()); } } @SuppressWarnings("unchecked") class PersonComparator implements Comparator { public int compare(Object o1, Object o2) { Person one = (Person) o1; Person other = (Person) o2; return one.getKind().compareTo(other.getKind()); }
} class Person implements Serializable { private static final long serialVersionUID = 1L; private String kind; private Integer id; public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } }
public class Person implements Comparable<Person>{
public String kind;
public int compareTo(Person person) {
return this.kind.compareTo(person.kind);
}
}
这样就可以了
Collections.sort(List<T> yourlist, Comparator<? super T> c);
List<Person> list = new ArrayList<Person>();
Person p = null;
for(int i =106;i>96;i--){
p = new Person();
p.setId(i);
p.setKind(String.valueOf((char) (i)));
list.add(p);
}
Collections.sort(list, new PersonComparator());
for(Person tmp : list){
System.out.println(tmp.getKind());
System.out.println(tmp.getId());
}
}
@SuppressWarnings("unchecked")
class PersonComparator implements Comparator { public int compare(Object o1, Object o2) {
Person one = (Person) o1;
Person other = (Person) o2;
return one.getKind().compareTo(other.getKind());
}
}
class Person implements Serializable { private static final long serialVersionUID = 1L;
private String kind;
private Integer id; public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}