treeset将A10和A9排序
时间: 2024-02-11 22:07:21 浏览: 125
在TreeSet中,元素的排序是按照元素的自然顺序进行的。对于字符串类型的元素,按照字典序进行比较,即从左到右逐个字符进行比较。因此,如果要将"A10"和"A9"进行排序,需要自定义比较器。
示例代码如下:
```java
TreeSet<String> set = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String prefix1 = o1.substring(0, o1.length() - 1);
String prefix2 = o2.substring(0, o2.length() - 1);
int cmp = prefix1.compareTo(prefix2);
if (cmp != 0) {
return cmp;
}
int num1 = Integer.parseInt(o1.substring(o1.length() - 1));
int num2 = Integer.parseInt(o2.substring(o2.length() - 1));
return Integer.compare(num1, num2);
}
});
set.add("A10");
set.add("A9");
System.out.println(set); // 输出:[A9, A10]
```
这里自定义了一个比较器,在比较时先比较字符串的前缀,如果前缀相同,则比较字符串的最后一个字符表示的数字大小。按照这种方式进行比较,"A9"会排在"A10"的前面,因此输出结果为[A9, A10]。
阅读全文