TreeSet字典排序
时间: 2024-06-14 17:05:16 浏览: 12
TreeSet是Java中的一个集合类,它基于红黑树实现。对于数值型数据类型,默认按照升序排序;对于Character和String类型,默认按照字典顺序升序排序。
以下是一个演示TreeSet字典排序的例子:
```java
import java.util.Set;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
Set<Integer> set1 = new TreeSet<>();
set1.add(5);
set1.add(2);
set1.add(8);
set1.add(1);
System.out.println(set1); // 输出:[1, 2, 5, 8]
Set<String> set2 = new TreeSet<>();
set2.add("c");
set2.add("b");
set2.add("a");
System.out.println(set2); // 输出:[a, b, c]
}
}
```
这个例子中,我们创建了两个TreeSet对象,一个存储整数,一个存储字符串。通过add()方法向集合中添加元素,然后打印集合,可以看到元素按照字典顺序升序排列。
相关问题
java treeset字符串排序
可以使用TreeSet来对字符串进行排序,TreeSet是一个有序的集合,它会根据元素的自然顺序进行排序。对于字符串来说,自然顺序就是按照字典序进行排序。
下面是一个示例代码:
```java
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<String> set = new TreeSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
System.out.println(set); // 输出 [apple, banana, orange]
}
}
```
在上面的代码中,我们创建了一个TreeSet对象,并向其中添加了三个字符串。由于TreeSet会自动按照字典序进行排序,因此输出结果为 [apple, banana, orange]。
如果你想要按照自定义的顺序进行排序,可以使用TreeSet的构造函数来传入一个Comparator对象。Comparator是一个接口,它定义了比较两个对象的方法。你可以在这个方法中定义自己的比较规则。
treeset将A10和A9排序
在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]。