Comparator接口的使用
package com.ding.mytreeset;
import java.util.TreeSet;
import java.util.Comparator;
public class Comparatortest {
public static void main(String[] args) {
//mehtod1();
TreeSet<String> ts = new TreeSet<>(
(String o1, String o2) -> {
int result = o1.length() - o2.length();
result = result == 0 ? o1.compareTo(o2) : result;
return result;
}
);
ts.add("aaa");
ts.add("ddd");
ts.add("eee");
ts.add("bbb");
ts.add("ccc");
ts.add("ccc");
System.out.println(ts);
}
private static void mehtod1() {
TreeSet<String> ts = new TreeSet<String>(new Comparator<String>() {
public int compare(String o1, String o2) {
int result = o1.length() - o2.length();
result = result == 0 ? o1.compareTo(o2) : result;
return result;
}
});
ts.add("aaa");
ts.add("ddd");
ts.add("eee");
ts.add("bbb");
ts.add("ccc");
ts.add("ccc");
System.out.println(ts);
}
}
- 如果返回值-为负数,表示当前存入的元素是较小值,存左边
- 如果返回值为0,表示当前存入的元素跟集合中元素重复了,不存
- 如果返回值为正数,表示当前存入的元素是较大值,存右边
道阻且长,行则将至

浙公网安备 33010602011771号