Comparator 是javase中的接口,位于java.util包下,该接口可以用于比较。
package cn.lf.day0830;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import org.junit.Test;
public class ComparatorDemo {
//使用Junit测试程序
@Test
public void test(){
//创建集合
List<String> list = new ArrayList<String>();
//添加元素
list.add("sghg");
list.add("sag");
list.add("geaag");
list.add("agt");
/*Comparator使用率:0.5%
*
*compareTo():按照字典顺序排序,如果参数字符串等于此字符串,
*则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一
*个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回
*一个大于 0 的值。
*
*int compare(T o1,T o2)比较用来排序的两个参数。根据第一
*个参数小于、等于或大于第二个参数分别返回负整数、零或正整数 */
//升序
/*list.sort(new Comparator<String>() {
@Override
public int compare(String str1, String str2) {
if (str1.compareTo(str2)>0) {
return 1;
}else if(str1.compareTo(str2)<0){
return -1;
}else {
return 0;
}
}
});*/
//降序
list.sort(new Comparator<String>() {
@Override
public int compare(String str1, String str2) {
if (str1.compareTo(str2)<0) {
return 1;
}else if(str1.compareTo(str2)>0){
return -1;
}else {
return 0;
}
}
});
System.out.println(list);
}
}
升序排序运行结果:[agt, geaag, sag, sghg]
降序排序运行结果:[sghg, sag, geaag, agt]