treeset排序字母和数字组合的值
时间: 2024-02-11 09:07:20 浏览: 64
可以使用TreeSet的自然排序来对字母和数字组合的值进行排序。
首先,定义一个类来表示字母和数字组合的值,该类需要实现Comparable接口来指定自然排序的规则。在compareTo()方法中,可以按照字典序进行比较。
示例代码如下:
```java
public class Value implements Comparable<Value> {
private String str;
private int num;
public Value(String str, int num) {
this.str = str;
this.num = num;
}
public String getStr() {
return str;
}
public int getNum() {
return num;
}
@Override
public int compareTo(Value o) {
int cmp = str.compareTo(o.str);
if (cmp != 0) {
return cmp;
}
return Integer.compare(num, o.num);
}
@Override
public String toString() {
return str + num;
}
}
```
然后,在使用TreeSet时,将Value对象作为元素添加到集合中即可自动按照自然排序进行排序。
示例代码如下:
```java
TreeSet<Value> set = new TreeSet<>();
set.add(new Value("a", 2));
set.add(new Value("b", 1));
set.add(new Value("a", 1));
set.add(new Value("c", 2));
System.out.println(set); // 输出:[a1, a2, b1, c2]
```
这里按照字母和数字组合的值进行排序,输出结果为[a1, a2, b1, c2]。
阅读全文