comparator:Comparator Collections做对象排序的思路方法



通过代码来看看吧

1.Employee 对象

package test;

public Employee {

private id ;
private String name;

public getId {
id;
}
public void Id( id) {
this.id = id;
}
public String getName {
name;
}
public void Name(String name) {
this.name = name;
}

}

2.对象比较器

package test;
import java.util.Comparator;

public DemoComparator implements Comparator {

public compare(Object o1, Object o2) {

(((Employee)o1).getId > ((Employee)o2).getId) {
-1;//DESC
} (((Employee)o1).getId < ((Employee)o2).getId) {
1;//ASC
} {
0;
}
}
}
3.测试类

package test;

import java.util.Vector;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public testVector {

/**
* @param args
*/
public void (String args) {

List vc = getEmList;

.out.prln("=before sort");
for( j =0;j < vc.size;j){
Employee em = (Employee)vc.get(j);
.out.prln("id :" + em.getId + " name:" + em.getName);
}

DemoComparator com = DemoComparator;
Collections.sort(vc, com);

.out.prln("=after sort");
for( j =0;j < vc.size;j){
Employee em = (Employee)vc.get(j);
.out.prln("id :" + em.getId + " name:" + em.getName);
}

}

//
public List getEmList{
//这里用Vector做测试当然你可以使用list所有子类
List v = Vector; Employee em = null;
em = Employee;
em.Id(59);
em.Name("test001");
v.add(em);

em = Employee;
em.Id(23);
em.Name("test002");
v.add(em);

for( i = 30; i < 40; i){
em = Employee;
em.Id(i);
em.Name("chenfeng" + i);
v.add(em);
}

v;
}
}

Tags:  javacollections collections javacomparator comparator

延伸阅读

最新评论

发表评论