首先定义一个实体(实例化以下,有get/set,toString)例如:实体类为(TestA)
package test;
import java.io.Serializable;
public class TestA implements Serializable{
private static final long serialVersionUID = -8968350748602548887L;
private String name;
//变量类型必须要为int的封装类型,因为只有是封装类型才可以调用Integer的方法
private Integer order;
private String amount;
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;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
@Override
public String toString() {
return "TestA [name=" + name + ", order=" + order + ", amount=" + amount + "]";
}
}
写个测试方法
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.logging.Logger;
public class Test {
public static void main(String[] args) {
List<TestA> listA = new ArrayList<TestA>();
//TestA 即是上面类
TestA a1 = new TestA();
a1.setName("张大胖");
a1.setOrder(1);
a1.setAmount("3.16");
listA.add(a1);
TestA a5 = new TestA();
a5.setName("王晓梅");
a5.setOrder(5);
a5.setAmount("0.38");
listA.add(a5);
TestA a3 = new TestA();
a3.setName("刘晓彤");
a3.setOrder(3);
a3.setAmount("1.15");
listA.add(a3);
System.out.println("listA 排序前:" + listA.toString());
Collections.sort(listA, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//升序
return o1.getAmount().compareTo(o2.getAmount());
}
});
System.out.println("listB 升序排序后:" +listA.toString());
/*Collections.sort(listA, new Comparator<TestA>() {
@Override
public int compare(TestA o1, TestA o2) {
//降序 getAmount这是具体比较的字段
return o2.getAmount().compareTo(o1.getAmount());
}
});
System.out.println("listB 降序排序后:" +listA.toString());*/
}
}
如果有用得到得地方自己写写看看。