如何对字符串格式的数字进行排序,然后放到ArrayList中?import java.util.Date;
public class Demo1 {public ArrayList fun(String[] s)
{
//对字符串格式的数字进行排序,然后放到ArrayList中?
//...?
} public static void main(String[] args) {
String[] s={"10","7","9.5","02","100"};
Demo1 demo1=new Demo1();
ArrayList a=demo1.fun(s);
//?在此打印输出a

}
}

解决方案 »

  1.   

    先用一个ArrayList<Double>存放这些数据. 然后排序. 然后再放进去, Java就是麻烦.
      

  2.   

    用C++是如此的简单... ...#include <string>
    #include <vector>
    #include <algorithm>
    #include <iostream>
    #include <math.h>using namespace std;class compare
    {
    public:
    int operator()(string const& a, string const& b)
    {
    double d1 = atof(a.c_str());
    double d2 = atof(b.c_str());
    return d1 < d2;
    }
    };class out
    {
    public:
    void operator()(string const& a)
    {
    cout<<a<<" ";
    }
    };
    int main(int argc, char* argv[])
    { vector<string> v;
    v.push_back("23");
    v.push_back("21");
    v.push_back("24");
    v.push_back("25.6"); std::sort(v.begin(), v.end(), compare()); for_each(v.begin(), v.end(), out());
    printf("Hello World!\n");
    return 0;
    }
      

  3.   

    用TreeSet+Comparator
       private static Set set = new TreeSet(new Comparator()
        {
            public int compare(Object o1, Object o2)
            {
                double result = Double.parseDouble((String)o1) - Double.parseDouble((String)o2);
                if(result > 0)
                {
                    return 1;
                }
                else if(result < 0)
                {
                    return -1;
                }            return 0;
            }        public boolean equals(Object obj)
            {
                return true;
            }
        });    public static List fun(String[] abc)
        {
            set.clear();
            for(int i = 0; i < abc.length; i++)
            {
                set.add(abc[i]);
            }
            return new ArrayList(set);
        }
      

  4.   

    啊,我刚入门啊,java中不用那些高级的类,该怎么做啊,..
      

  5.   

    也可直接用Collections.sort()import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;public class Test implements Comparator {    @SuppressWarnings("unchecked")
        public ArrayList fun(String[] s) {
            ArrayList<String> list = new ArrayList<String>();        for (int i = 0; i < s.length; i++) {
                list.add(s[i]);
            }        Collections.sort(list, this);        return list;
        }    public static void main(String[] args) {
            String[] s = { "10", "7", "9.5", "02", "100"};        Test test = new Test();        ArrayList a = test.fun(s);        System.out.println(a);
            
        }    public int compare(Object o1, Object o2) {
            // TODO Auto-generated method stub
            String str1 = o1.toString();
            String str2 = o2.toString();
            double d1 = Double.parseDouble(str1);
            double d2 = Double.parseDouble(str2);
            if (d1 > d2) {
                return 1;
            }
            else if (d1 < d2) {
                return -1;
            }
            return 0;
        }}
      

  6.   

    帮你填充了.import java.util.*;
    public class Demo1 {public ArrayList fun(String[] s)
    {                
            //对字符串格式的数字进行排序,然后放到ArrayList中?
            //...?
            Double[] d=new Double[s.length];
            for(int i=0;i<s.length;i++){
             d[i]=new Double(s[i]);
            }
            Arrays.sort(d);
            
            ArrayList list=new ArrayList();
            for(int i=0;i<d.length;i++){
             list.add(d[i]);
            }
            return list;
    }    public static void main(String[] args) {
        String[] s={"10","7","9.5","02","100"};
        Demo1 demo1=new Demo1();
        ArrayList a=demo1.fun(s);
        //?在此打印输出a
        Iterator i=a.iterator();
        while(i.hasNext()){
         System.out.println(i.next());
        }
        }
    }
      

  7.   

    集合框架里的大部分类的使用是Java程序员必备的基础,你现在不学以后也要学的,还不如利用现在的机会好好研究下,呵...
      

  8.   

    楼上返回的是List
    这里也做了个例子
    速度快一点哦
    import java.util.List;
    import java.util.ArrayList;public class For_job_test {
    public List fun(String[] s)
    {                
            //对字符串格式的数字进行排序,然后放到ArrayList中?
            //...?
    float temp[] = new float[s.length];
    for(int i=0;i<s.length;i++)
    temp[i] = Float.parseFloat(s[i]);
    java.util.Arrays.sort(temp);
    return java.util.Arrays.asList(temp);
    }     public static void main(String[] args) {
        long start = System.currentTimeMillis();
        String[] s={"10","7","9.5","02","100"};
        For_job_test demo1=new For_job_test();
        List a=demo1.fun(s);
        System.out.print(System.currentTimeMillis() -start);
        //?在此打印输出a
        
        }
    }
      

  9.   

    写法不一样,原理都一样
    [code=Java]
    public static ArrayList fun(String[] s) {
    ArrayList result = new ArrayList();
    double[] ds=new double[s.length];
    int i=0;
    for(String value:s){
    ds[i++]=new Double(value);
    }
    Arrays.sort(ds);
    for(double d:ds){
    result.add(d);
    }
    return result;
    }
    [code]