这个题用有参的TreeSet集合来做,传入一个自定义的比较器
TreeSet<String> ts2 = new TreeSet<>(new Comparator<String>() {
public int compare(String s1,String s2) {
//按照字符串的长度排序,并保留重复(长度是主要条件,字典顺序是次要条件,如果字符串一样,compareTo()方法返回1,确保可以保留重复)
int length = s1.length() - s2.length();
int num = length == 0 ? s1.compareTo(s2) : length;
return num == 0 ? 1 : num;
}
});
ts2.add("bbb");
ts2.add("aaa");
ts2.add("bbb");
ts2.add("nihao");
ts2.add("heima");
ts2.add("aaa");
ts2.add("week");
ts2.add("year");
ts2.add("cccccccccc");
for (String s : ts2) {
System.out.println(s);
}
|
|