在treeset中对String对象进行排序,要求优先按照字母表顺序排序,其次按照字符串 长度
时间: 2024-03-21 16:40:54 浏览: 81
可以通过自定义比较器来实现在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.compareTo(s2);
if (res != 0) {
return res;
}
// 如果字母相同,则按照长度排序
return s1.length() - s2.length();
}
}
```
运行该代码,输出结果为:
```
apple
banana
grape
orange
pear
```
可以看到,输出的结果首先按照字母表顺序排序,如果字母相同则按照长度排序。
阅读全文