public class CollectionDemo implements Serializable,Comparable<CollectionDemo>{
private static final long serialVersionUID = -2958090810811192128L;
private int id;
private String name;
public CollectionDemo(){}
public CollectionDemo(int id, String name) {
super();
this.id = id;
this.name = name;
}
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;
}
//方法一:继承Comparable接口,实现compareTo方法。 在随后生成集合后调用:Collections.sort(集合对象)即可实现排序
@Override
public int compareTo(CollectionDemo o) {
String i1,i2;
i1 = this.name;
i2 = o.getName();
return i1.compareTo(i2);
}
public static void main(String[] args) {
CollectionDemo c1 = new CollectionDemo(1,"c1");
CollectionDemo c2 = new CollectionDemo(2,"c2");
CollectionDemo c3 = new CollectionDemo(3,"c3");
CollectionDemo c4 = new CollectionDemo(4,"c4");
CollectionDemo c5 = new CollectionDemo(5,"c5");
List<CollectionDemo> lstCol = new ArrayList<CollectionDemo>();
lstCol.add(c1);lstCol.add(c5);lstCol.add(c4);lstCol.add(c2);lstCol.add(c3);
System.out.println("-------未排序------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
System.out.println("-------排序后①------");
Collections.sort(lstCol);
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
lstCol.clear();
System.out.println("-------清空后------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
lstCol.add(c1);lstCol.add(c5);lstCol.add(c4);lstCol.add(c2);lstCol.add(c3);
//方法二:实现Comparator的compare方法
Collections.sort(lstCol, new Comparator<CollectionDemo>() {
@Override
public int compare(CollectionDemo o1, CollectionDemo o2) {
return o2.getName().compareTo(o1.getName());
}
});
System.out.println("-------排序后②------");
for (CollectionDemo collectionDemo : lstCol) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
//方法三:使用TreeSet实现类自动进行自然排序
System.out.println("-------TreeSet排序后③------");
Set<CollectionDemo> ts = new TreeSet<CollectionDemo>(); //SortedSet是TreeSet的接口
ts.add(c1);ts.add(c5);ts.add(c4);ts.add(c2);ts.add(c3);
for (CollectionDemo collectionDemo : ts) {
System.out.println("id:"+collectionDemo.getId()+" name:"+collectionDemo.getName());
}
}
}