java中如何进行属性值排序 5
展开全部
你可以把你要排序的属性放到一个TreeSet中,这个类在java.util包中,而且这个TreeSet中只能存放这个属性,也就是元素对象类型要一致!然后这个对象要是可以比较的,就是说你定义的这个类是可以比较的,这个类要实现Comparable接口,然后实现其中的compareTo方法,给出你的比较方法,像我下面的例子中我对学生这个类用年龄排序,如果年龄相同的TreeSet会把这个对象舍去的,所以你可以给出多个比较方法,比如说年龄相同,就按照姓名在排序,姓名相同再按照学号排序,保证加到TreeSet中的元素不同,因为TreeSet会根据你的比较方法自动舍去相同的元素!
import java.util.*;
public class SetTest {
/**
* @param args
*/
public static void main(String args[]){
TreeSet hs=new TreeSet();
hs.add(new Student("cyq",26));
hs.add(new Student("binxin",24));
hs.add(new Student("binxin",23));
for (Object o:hs){
System.out.println(o);
}
}
}
class Student implements Comparable{
String name;
int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString(){
return name+":"+age;
}
public int compareTo(Object o) {
Student s=(Student)o;
return this.age-s.age;
}
}
import java.util.*;
public class SetTest {
/**
* @param args
*/
public static void main(String args[]){
TreeSet hs=new TreeSet();
hs.add(new Student("cyq",26));
hs.add(new Student("binxin",24));
hs.add(new Student("binxin",23));
for (Object o:hs){
System.out.println(o);
}
}
}
class Student implements Comparable{
String name;
int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString(){
return name+":"+age;
}
public int compareTo(Object o) {
Student s=(Student)o;
return this.age-s.age;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询