黑马程序员技术交流社区
标题:
如何把Set集合的数据进行强行逆转排序
[打印本页]
作者:
周洋
时间:
2012-3-30 15:53
标题:
如何把Set集合的数据进行强行逆转排序
有一个Set集合,现在是按年龄从小到大排序,现在想按年龄从大到小排序,请问用强行逆转排序怎么实现?
Set<Student> stus = new TreeSet<Student>();
suts.add(new Student("张三",18))
suts.add(new Student("大七",22))
suts.add(new Student("周六",24))
suts.add(new Student("小四",28))
suts.add(new Student("王五",35))
作者:
刘晓康
时间:
2012-3-30 16:09
可以使用集合的扩展类Collections的reerseOrder方法,此方法的定义如下:
static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
此方法 返回一个比较器,它强行逆转指定比较器的顺序。
你上面的代码可以写成如下形式:
Set<Student> stus = new TreeSet<Student>();
suts.add(Collections.reverseOrder(new Student("张三",18)));
suts.add(Collections.reverseOrder(new Student("大七",22)));
suts.add(Collections.reverseOrder(new Student("周六",24)));
suts.add(Collections.reverseOrder(new Student("小四",28)));
suts.add(Collections.reverseOrder(new Student("王五",35)) );
作者:
yangshang1
时间:
2012-3-30 16:32
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class ComparableTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Stu> s=new TreeSet<Stu>(Collections.reverseOrder());
s.add(new Stu("liumeng",11));
s.add(new Stu("asd",134));
s.add(new Stu("asf",34));
Iterator<Stu> iterator=s.iterator();
while(iterator.hasNext())
{
Stu ss=iterator.next();
System.out.println(ss.getName());
}
}
}
class Stu implements Comparable<Stu>
{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private String name;
public Stu(String name, int age) {
super();
this.name = name;
this.age = age;
}
private int age;
@Override
public int compareTo(Stu o) {
int num=this.name.compareTo(o.name);
if(num==0)
return this.age-o.age;
return num;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2