从容_ 2016-04-06 15:10 采纳率: 50%
浏览 2298
已采纳

Java中用TreeSet方法排序字符型数字怎么排序啊,求指教,谢谢

public class Demo implements Comparable{
//String str;
String str;
/*public Demo(){

}*/
public Demo(String str){
    this.str=str;
}
public void getStr(String str){
    this.str=str;
}
public String setStr(){
    return str;
}
//重写toString()方法
public String toString(){
    return  " "+this.str;
}
//比较规则
public int compareTo(Object arg0) {
    return 1;
}

}

public class SortByNum implements Comparator{

public int compare(Object arg0, Object arg1) {
    Demo d1=(Demo)arg0;
    Demo d2=(Demo)arg1;
    int temp = 0;
    String str1=d1.toString();//转换成字符串
    String str2=d2.toString();//转换成字符串
    char[] ch1=str1.toCharArray();//转换成数组
    char[] ch2=str2.toCharArray();//转换成数组
    for(int i=0;i<ch1.length;i++){
        for(int j=0;j<ch2.length;j++){
            temp=d1.compareTo(d2);
        }
    }
    //int temp=d1.compareTo(d2);
    return  temp;
}

}

public class TreeSets {
public static void main(String[] args) {
//Demo demo=new Demo();
//创建一个TreeSet集合
TreeSet tree=new TreeSet(new SortByNum());
//添加字符
tree.add(new Demo("15"));
tree.add(new Demo("19"));
tree.add(new Demo("16"));
tree.add(new Demo("99"));
System.out.println(tree);
}
}

麻烦大家看一下,就是不知道怎么做,例如:String str="8 10 15 2 5 7";

输出"2 5 7 8 10 15" 谢谢了

  • 写回答

2条回答

  • threenewbee 2016-04-06 15:24
    关注
     /* package whatever; // don't place package name! */
    
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Demo implements Comparable{
        String str;
    
        public Demo(String str){
            this.str=str;
        }
        public void setStr(String str){
            this.str=str;
        }
        public String getStr(){
            return str;
        }
        //重写toString()方法
        public String toString(){
            return  " "+this.str;
        }
        //比较规则
        public int compareTo(Object arg0) {
            Demo d2 = (Demo)arg0;
            if (d2.getStr().length() != str.length()) return str.length() - d2.getStr().length();
            return str.compareTo(d2.getStr());
        }
    }
    
    class SortByNum implements Comparator{
    
        public int compare(Object arg0, Object arg1) {
            Demo d1=(Demo)arg0;
            Demo d2=(Demo)arg1;
            return d1.compareTo(d2);
        }
    }
    
    /* Name of the class has to be "Main" only if the class is public. */
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            // your code goes here
            //创建一个TreeSet集合
            TreeSet tree=new TreeSet(new SortByNum());
            //添加字符
            String s = "8 10 15 2 5 7";
            for (String s1 : s.split(" "))
                tree.add(new Demo(s1));
            System.out.println(tree);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3