在treeset中对String对象进行排序,要求优先按照长度排序,其次按照字母表顺序排序
时间: 2024-03-21 13:40:55 浏览: 52
Java对象排序中文排序SortedSet排序使用和源码讲
同样可以通过自定义比较器来实现在TreeSet中对String对象进行排序。自定义比较器需要实现java.util.Comparator接口,并重写其中的compare方法。在compare方法中,我们可以指定按照哪些规则进行排序。
以下是一个示例代码,实现了按照长度排序,如果长度相同则按照字母表顺序排序:
```java
import java.util.Comparator;
import java.util.TreeSet;
public class StringSorter {
public static void main(String[] args) {
// 创建一个TreeSet,并指定自定义比较器
TreeSet<String> set = new TreeSet<>(new MyComparator());
set.add("apple");
set.add("banana");
set.add("grape");
set.add("orange");
set.add("pear");
// 遍历TreeSet,输出排序结果
for (String s : set) {
System.out.println(s);
}
}
}
// 自定义比较器
class MyComparator implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
// 按照长度排序
int res = s1.length() - s2.length();
if (res != 0) {
return res;
}
// 如果长度相同,则按照字母表顺序排序
return s1.compareTo(s2);
}
}
```
运行该代码,输出结果为:
```
grape
pear
apple
banana
orange
```
可以看到,输出的结果首先按照长度排序,如果长度相同则按照字母表顺序排序。
阅读全文