package com.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
public class ListSortWithComparator
{
publicstatic void main(String[] args)
{
/*
* 使用comparator进行排序的第一种方法,
* 定义一个实现Comparator接口的类,并重载compara方法,设定比较规则
* 利用Collection.sort(list,comparator)方法实现排序,
* Collection.sort(list,comparator)方法的第一个参数为List类型,因此要排序的元素需要放在List集合中
*/
List<People>list = new ArrayList<>();
list.add(newPeople("zhuwei",26));
list.add(newPeople("yinyuchun",25));
list.add(newPeople("xiaobai",26));
MComparatorcomparator = new MComparator();
Collections.sort(list,comparator);
for(Peoplep:list)
{
System.out.println(p.toString());
}
/*
* 使用comparator进行排序的第二种方法,
* 该方法不需要People实现Comparator接口
* 直接Comparator对象传递给TreeSet的构造器,
* 并重载Comparator类的compara方法,指定排序规则
*/
// SortedSet<People>set = new TreeSet<>(
// newComparator<People>()
// {
//
// //重载Comparator类的compara方法,设定比较规则:按名字降序排列
// @Override
// publicint compare(People people1, People people2)
// {
// //TODO Auto-generated method stub
// if(people1.getName().compareTo(people2.getName())>0)
// {
// return-1;
// }
// else
// {
// return1;
// }
//
// }
//
// }
// );
// set.addAll(list);
// System.out.println("输出按降序排列的结果:");
// for(Peoplep: set)
// {
// System.out.println(p.toString());
// }
}
}
Java集合中Comparable和Comparator辨析(2)
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/c5822ee68144a824c29990c3620addbb.html