1. 使用TreeSet和Comparator,编写TreeSetTest2类,要求对TreeSet中的元素1-元素10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列。
时间: 2024-05-02 14:20:40 浏览: 109
好的,这是一个关于使用TreeSet和Comparator的问题,我可以回答。以下是TreeSetTest2类的代码:
```java
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetTest2 {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 % 2 != o2 % 2) {
return o1 % 2 == 1 ? -1 : 1; // 奇数在前偶数在后
} else {
return o1 % 2 == 1 ? o1 - o2 : o2 - o1; // 奇数按照升序排列,偶数按照降序排列
}
}
});
for (int i = 1; i <= 10; i++) {
set.add(i);
}
System.out.println(set);
}
}
```
我们使用了匿名内部类实现了Comparator接口,定义了排序逻辑。首先判断两个元素的奇偶性,奇数在前偶数在后;然后分别按照升序或降序排列。
最后输出的结果为:[1, 3, 5, 7, 9, 10, 8, 6, 4, 2],符合要求。
阅读全文