JAVA刚刚起步,遇到了一个题目:随即产生10个1-100内的整数,然后从大到小排序。
帮我说一下思路(尽量说的详细些,如用到哪个函数),着急等。呵呵非常感谢

解决方案 »

  1.   

    用Random类的nextInt(99)产生0~99之间的随机数,不含99.结果加1就是1~100之同内的随机数了.从大到小排序可以自己写一个算法。如果用现成的方法,可以用Arrays.sort(integerArray,Collections.reverseOrder());其中integerArray是你要排序的数组,数组的内容是Integer的,所以要你把int类型数组,转为Integer数组,结果还要到转回到int.
      

  2.   

    从大到小的选择排序思路:
    从i~array.length-1中选最大的元素和i交换。i从0到array.length-2循环就可以了。for(int i=0;i<array.length-1;i++){
        max=i;//假设从i~array.length-1中最大的数的下标是i;
        for(int j=i+1;j<array.length;j++){
          if(array[j]>array[max]){  //找到了比array[max]还要大的数。
               max=j;
          }
        }
        交换array[i]和array[max]}
      

  3.   

    这个前不久用.net写过。random就OK最后你稍微拓展下,新手嘛 要多钻的。。
      

  4.   

    1.Random ran =new Random();ran.nextInt(数值)+1
    2.Math.random();
      

  5.   


    import java.util.Random;public class Test3{
       static void sort(int[] arr){
           // 从此一个位开始循环数组
          for(int i=0;i<arr.length;i++){
             // 从第i+1为开始循环数组
              for(int j=i+1;j<arr.length;j++){
                 // 如果前一位比后一位小,那么就将两个数字调换
                 // 这里是按降序排列
                 // 如果你想按升序排列只要改变符号即可
                  if(arr[i] < arr[j]){
                     int tem = arr[i];
                     arr[i] = arr[j];
                     arr[j] = tem;
                  }
              }
          }
       }
       public static void main(String[] args){
       int arr[] = new int[11];
       Random r=new Random();
       for(int i=0;i<10;i++){
        arr[i]=r.nextInt(100)+1;//得到10个100以内的整数
       }       sort(arr);
           for(int i=0;i<arr.length;i++){
              System.out.println(arr[i]);
           }
       }

      

  6.   

    哈哈,谢谢大家啊,11楼还给了源代码?谢谢。看API无从下手啊~~~~~~~~~~
    之前我知道两点:1是用Random 2是用sort现成的方法。但具体怎么用就蒙了
      

  7.   

    哥们,看API无从下手也得看啊!
      

  8.   


    public class Test {

    public static void main(String args[]) {
    Random rand=new Random();
    Integer[] a=new Integer[10];
    for(int i=0;i<10;i++){
    a[i]=rand.nextInt(99)+1;
    }

    //方法一
    /*Arrays.sort(a);
    for(int i=a.length-1;i>=0;i--){
    System.out.print(a[i]);
    if(i>0){
    System.out.print(",");
    }
    }*/

    //方法二
    Arrays.sort(a,new Comparator<Integer>(){
    public int compare(Integer o1, Integer o2) {
    return o1.intValue()>o2.intValue()?-1:(o1.intValue()<o2.intValue()?1:0);
    }});
    System.out.println(Arrays.toString(a));

    }
    }
      

  9.   

    顶楼上:import java.util.*;public class Headache {
        
        public static void main(String args[]) {
            Random rand=new Random();
            Integer[] a=new Integer[10];
            for(int i=0;i<10;i++){
                a[i]=rand.nextInt(99)+1;
            }
            System.out.println("排序之前:");
            System.out.println(Arrays.toString(a));
            //方法一
            /*Arrays.sort(a);
            for(int i=a.length-1;i>=0;i--){
                System.out.print(a[i]);
                if(i>0){
                    System.out.print(",");
                }
            }*/
            
            //方法二
            /*Arrays.sort(a,new Comparator<Integer>(){
                public int compare(Integer o1, Integer o2) {
                    return o1.intValue()>o2.intValue()?-1:(o1.intValue()<o2.intValue()?1:0);
                }});
                */
              //方法三:
             Arrays.sort(a,Collections.reverseOrder());
             System.out.println("排序之后:");
            System.out.println(Arrays.toString(a));
        
        }
    }
      

  10.   

    我怎么记得,Collections.reverseOrder()不能排序基本数据?记错了?
      

  11.   

    import java.util.*;public class Headache {
        
        public static void main(String args[]) {
            Random rand=new Random();
            Integer[] a=new Integer[10];
            for(int i=0;i<10;i++){
                a[i]=rand.nextInt(99)+1;
            }
            System.out.println("排序之前:");
            System.out.println(Arrays.toString(a));
            //方法零:
            Arrays.sort(a);
            List<Integer> myList=Arrays.<Integer>asList(a);
            Collections.reverse(myList);
            System.out.println(myList);
            
            //方法一
            /*Arrays.sort(a);
            for(int i=a.length-1;i>=0;i--){
                System.out.print(a[i]);
                if(i>0){
                    System.out.print(",");
                }
            }*/
            
            //方法二
            /*Arrays.sort(a,new Comparator<Integer>(){
                public int compare(Integer o1, Integer o2) {
                    return o1.intValue()>o2.intValue()?-1:(o1.intValue()<o2.intValue()?1:0);
                }});
                */
              //方法三:
             //Arrays.sort(a,Collections.reverseOrder());
            System.out.println("排序之后:");
            System.out.println(Arrays.toString(a));
        
        }
    }
      

  12.   

    Collections.reverse(myList);//这个还能把a也reverse了?奇也怪哉!
      

  13.   

    光顾抄人家的代码了,原来a是Integer[]啊.但
    List<Integer> myList=Arrays.<Integer>asList(a);
    Collections.reverse(myList);
    System.out.println(myList);
    这时a也反转了.说明一个问题,数组和对应的List实际上是同一个东西的不同形式.这样解释对吗?
      

  14.   

    烂货,老师都白交你了,下次老师就教你们怎么到csdn上找答案,就行了。