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

问题描述

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" 谢谢了

解决方案

 /* 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);
    }
}

解决方案二:

[ 2, 5, 7, 8, 10, 15]

解决方案三:

oracle中字符型字段按数字排序

时间: 2025-01-02 09:27:52

java-Java中用TreeSet方法排序字符型数字怎么排序啊,求指教,谢谢的相关文章

java基础问题求指教谢谢

问题描述 java基础问题求指教谢谢 形如 A a=new A();-------------1 a=new A();--------------2 辣么,a到底指的是哪个对象?1还是2? 五楼的说法对么? 解决方案 只用new关键字是为了创建一个对象,你使用了两次new关键字进行创建,会在内存中创建两个A的对象,a是你声明的一个引用,在程序中以最后一次的指向为准,这里是指向最后一个. 解决方案二: new 最后一个对象时,内存又为它分配了新的地址,所以a只想最后一个 解决方案三: a 在最后被

ant编译-ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教

问题描述 ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教 ant权限已经更改了.且创建build.xml命令执行通过.当调用ant命令的时候.提示没有权限.好奇怪. 解决方案 就是在java中通过runtime.getruntime.exec执行命令 /bin/sh -c android create uitest-project....生成build.xml文件已经通过.但当通过exec执行命令/bin/sh -c ant bui

app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答!

问题描述 app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答! app上线后出现BUG怎么处理?开发中用什么方法预防这类问题发生? 跪求大神解答! 解决方案 出现bug就发布新的版本,客户端自动检查你的服务器,自动下载升级.另外开发过程中注意测试,减少bug

JAVA之旅(二十)—HashSet,自定义存储对象,TreeSet,二叉树,实现Comparator方式排序,TreeSet小练习

JAVA之旅(二十)-HashSet,自定义存储对象,TreeSet,二叉树,实现Comparator方式排序,TreeSet小练习 我们继续说一下集合框架 Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复 Set集合的功能和Collection是一致的 我们重点关注的是子类对象 我们来聊聊 一.HashSet HashSet底层结构是哈希表 什么是HashSet? package com.lgl.hellojava; //公共的 类 类名 public class HelloJ

ruby 有没有类似java中的substring方法,截取字符?

问题描述 ruby 有没有类似java中的substring方法,截取字符?我用truncate方法,他会提示我找不到truncate方法,ruby有没有其他的截取字符的方法. 解决方案 直接用分片:a="abcdefg",a[1,3]="bcd"

对象-java中有关TreeSet的一个小疑问

问题描述 java中有关TreeSet的一个小疑问 看书上说java所有集合框架的具体类都至少有两种构造方式,一种是无参构造方法,一种是用另一个已有的容器来构造. 比如先前已经有了一个HashSet类的对象hh,但是他内部的元素是无序的,而我们这时再创建一个TreeSet(hh),他就会根据hh中存有元素自带的compareTo方法自动排好序,并且这个排序过程只进行一次.而如果我们将这些带排序的元素逐个加入到TreeSet中去,则就要加一次排一次序,会更耗时间. 请问,是不是有所遇到这种用到Tr

java编程排序之内置引用类型的排序规则实现,和自定义规则实现+冒泡排序运用

第一种排序:[冒泡排序]基本数据类型的排序. [1]最简易的冒泡排序.效率低.因为比较的次数和趟数最多. 1 /** 2 * 最原始的冒泡排序. 3 * 效率低. 4 * 因为趟数和次数最多.都是按最大化的循环次数进行循环 5 * @Title: sort 6 * @Description: TODO(这里用一句话描述这个方法的作用) 7 * @param arr 8 * @return void 返回类型 9 * @author 尚晓飞 10 * @date 2014-8-5 上午8:42:4

Java 库的建立方法及其实例

作者 ariesram 电子邮件地址 ariesram@linuxaid.com.cn, 或 ariesram@may10.ca 本文及本人所有文章均收集在bambi.may10.ca/~ariesram/articles/中. 本文授权给www.linuxaid.com.cn. 正文: 任何一种面向对象语言都有它的库.任何一种面向对象的语言也都离不开库的支持.用我们熟悉的 面向对象语言为例子,C++有STL,Java有API函数,具体到开发工具,Visual C++提供了MFC, Borlan

Java截取字符串的方法

  本文实例讲述了Java截取字符串的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 public static void main(String args[]) { //以该字符第一次出现,开始截取 //String str="abc.def"; //String str="abc.def.sdfsdf.fsdfd.ddddd.ggggg.ttttt"; //String str1=str.subst