定义一个方法,接收四个float类型的参数,如sort(float a, float b, float c, float d),将其按从大到小排序,最后生成一条sql语句,order by a,b,c,d  其中abcd是按由大到小的顺序排列的,并且就是字母abcd,不是传进来的数,如果接收的参数为1.0,2.0,3.0,4.0的话,最后生成的sql语句为 order by d,c,b,a 
求高手指点

解决方案 »

  1.   

    public static void sort(float a,float b,float c,float d){
    String[] ch={"a","b","c","d"};
    Float[] f={a,b,c,d};
    Map<Float,String> map=new HashMap<Float,String>();
    for(int i=0;i<ch.length;i++){
    map.put(f[i], ch[i]);
    } for(int j=f.length;j>0;j--){
    for(int i=0;i<j;i++){
    if(i<j-1){
    if(f[i]<f[i+1]){
    Float temp=f[i];
    f[i]=f[i+1];
    f[i+1]=temp;
    }
    }
    }
    }
    String result="";
    for(Float g:f){
    result+=map.get(g);
    }

    System.out.println(result);
    }
      

  2.   

    java貌似获取不到方法的参数名称吧,求解
      

  3.   

    谢谢1楼的回复,但是如果传进来的参数有两个一样的,结果生成的result中就会有重复的字母,还请再帮忙解决下
      

  4.   

    java有自带的数组排序的。
    Float[] a={3.0f,2.0f,1.0f,4.0f};
    java.util.Arrays.sort(a);
    就算有相同的也没关系的,排序没什么影响
    如果好要判断的话只有每个再遍历一次了
      

  5.   

    求解.为什么有MAIN方法还会出现:Select does not contain a main type
    public class CompoundInterest 
    {
    public static void mian(String[] args)
    {
    final double STARTRATE = 10;
    final int NRATES = 6;
    final int NYEARS = 10;

    //set interest rates to 10.....15
    double[] interestRate = new double[NRATES];
    for(int j=0; j<interestRate.length; j++)
    interestRate[j] = (STARTRATE + j)/100.0;

    double[][] balances = new double[NRATES][NYEARS];

    //set initial balances to 10000
    for(int j=0; j< balances[0].length; j++)
    balances[0][j] = 10000;

    // copute interest for future years
    for(int i=1;i<balances.length; i++)
    {
    for(int j=0; j<balances[i].length; j++)
    {
    // get last year's balances from previous row
    double oldBalance = balances[i-1][j];

    // compute interest
        double interest = oldBalance * interestRate[j];
        
       // compute this year's balances
        balances[i][j] = oldBalance + interest;
    }
    }
    // print one row of interest rates
    for(int j=0; j<interestRate.length; j++)
    System.out.printf("%9.0f%%",100*interestRate[j]);

    System.out.println();

    // print balance table
    for(double[] row: balances)
    {

    //print table row
    for(double b: row)
    System.out.printf("%10.2f",b);

    System.out.println();
    }
    }}