62,614
社区成员
发帖
与我相关
我的任务
分享
ComparatorChain compChain = new ComparatorChain();
compChain.addComparator(new BeanComparator("status"),
true);
public class ComparableTest {
public static void main(String[] args) {
Student[] ss = new Student[5];
for (int i = 0; i < 5; i++) {
int temp = (int) (Math.random() * 100);
ss[i] = new Student(temp+"", temp, temp+"");
}
// 加一个比较器
Arrays.sort(ss, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (Student s : ss) {
System.out.println(s);
}
}
}
class Student {
private String name;
private int grade;
private String cname;
public Student(String name, int grade, String cname) {
this.name = name;
this.grade = grade;
this.cname = cname;
}
/**
* @return Returns the name.
*/
public String getName() {
return name;
}
/**
* @param name The name to set.
*/
public void setName(String name) {
this.name = name;
}
/**
* @return Returns the grade.
*/
public int getGrade() {
return grade;
}
/**
* @param grade The grade to set.
*/
public void setGrade(int grade) {
this.grade = grade;
}
/**
* @return Returns the cname.
*/
public String getCname() {
return cname;
}
/**
* @param cname The cname to set.
*/
public void setCname(String cname) {
this.cname = cname;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(name);
sb.append(":");
sb.append(grade);
sb.append(",");
sb.append(cname);
return sb.toString();
}
}
import java.util.ArrayList;
import java.util.Collections;
public class StudentRanging {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<Student>();
Student a=new Student("胖胖",30,90.5);
Student b=new Student("刘静",25,92.5);
Student c=new Student("苏凯",21,80.5);
Student d=new Student("许三多",28,90.5);
Student e=new Student("成才",20,90.5);
list.add(a);
list.add(b);
list.add(c);
list.add(d);
list.add(e);
Collections.sort(list);
for(Student s:list){
System.out.println("info:"+s);
}
}
}
class Student implements Comparable{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", score=" + score +
'}';
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
private String name;
private int age;
Student(String name, int age, double score) {
this.name = name;
this.age = age;
this.score = score;
}
private double score;
@Override
/**
* 实现按照成绩降序排序
*/
public int compareTo(Object o) {
Student s=(Student)o;
int result=0;
if(this.age>s.getAge())
result=1;
if(this.age<s.getAge())
result=-1;
return result;
}
}
ComparatorChain compChain = new ComparatorChain();
compChain.addComparator(new BeanComparator("status"),
true);
Collections.sort(list, compChain);
ComparatorChain compChain = new ComparatorChain();
compChain.addComparator(new BeanComparator("status"),
true);
Collections.sort(list, compChain);
java.util.Collections.sort(List<T> list)