这一个小题目查了好久,查到了一个可以用的,稍加修改放出来
我在放SixthPackage包中,没有这个包直接删掉 package SixthPackage;就行
package SixthPackage;
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetTest2 {
public static void main(String[] args){
TreeSet<Integer> s=new TreeSet(new InterageTree());
for(int i=1;i<=10;i++){
s.add(i);
}
System.out.println("输出:奇数在前偶数在后,奇数升序偶数降序");
print(s);
}
public static void print (TreeSet<Integer> c){
for(Integer i:c)//增强for输出
{
System.out.print(i);
}
}
}
class InterageTree implements Comparator{
int x;
InterageTree(){
x=0;
}
InterageTree(int x){
this.x=x;
}
@Override
public int compare(Object a,Object b) {
if(a instanceof Integer&&b instanceof Integer)
{
Integer a1=(Integer)a;
Integer a2=(Integer)b;
if(a1%2==0&&a2%2==0)//降序排列
{
return -1;
}
if(a1%2==1&&a2%2==1)//升序排列
{
return 1;
}
if(a1%2==0&&a2%2==1)//如果前面是偶数后面是奇数,则交换顺序
{
return 1;
}
if(a1%2==1&&a2%2==0)//如果前面是偶数后面是奇数,则不交换顺序
{
return -1;
}
}
return 0;
}
}
运行结果
能用的话就点个赞吧,不能用的话评论我再瞅瞅
借鉴文章:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列_HDCX的博客-CSDN博客