0

私はJavaと配列リストが初めてです。ランダムな整数でいっぱいの配列を並べ替えて入力することになっています。次に、ラン(同じ数の倍数が連続している)がある場合は、そのランの周りに( )を置きます。したがって、ランダムリストが次の場合:

2 3 4 5 5 5 5 6 7 7 9

2 3 4 (5 5 5 5) 6 (7 7) 9

これは私がこれまでに持っているものです:

import java.util.*;

class Run {
  public static void main (String [] args){

    Scanner m = new Scanner(System.in);

    System.out.print("Enter length wanted: ");
    int len = m.nextInt();

    System.out.print("Enter max number wanted: ");
    int max = m.nextInt();
    max = max -1;

   int[] x = new int[len]; 
   ArrayList<String> y = new ArrayList<String>();

   //Filling x with random numbers
   for(int i = 0; i<len; i++){

    x[i] = ((int)(Math.random()*max)+1); 

   }

   System.out.println("Orginal Array: " + Arrays.toString(x));


   for(int i = 0; i<=len-1; i++){
     if(x[i] == x[i++]){ //I just don't know how I am exactly supposed to sort this

     }else{

     }

  }
   //Array List with ()
   System.out.println("Runs labeled Array: " + y);

  }
}
4

2 に答える 2

0

Collections.sort(yourList)ArrayListを並べ替えるために使用します。

APIメソッドを使用したくない場合。

試す :

for(int i=0;i<list.size(); i++){
            for(int j=i+1; j<list.size(); j++){
                if(list.get(i)>list.get(j)){
                    temp = list.get(i);
                    list.set(i,list.get(j));
                    list.set(j, temp);
                }
            }
        }
于 2012-11-14T00:22:03.270 に答える
0

最終的な出力を表示するには、文字列が必要になります。また、配列の外に出ないでください。次のようなことを試してください:

x = Collections.sort(x);
String s = "";
boolean b;
for(int i = 0; i<=len-1; i++){
 if(x[i] == x[i+1]){
   s+=" ("+i+" ";
   b = true;
 }else{
   if(b == true){
      s+=i+") ";
      b = false;
   }
   s+=i + " ";
 }

}
于 2012-11-14T00:25:21.490 に答える