arraylist java计数整数运行

时间:2012-11-14 00:18:29

标签: java sorting arraylist

我是java和数组列表的新手。我应该排序填充一个充满随机整数的数组,然后如果有一个运行(一行中相同数字的倍数),put()围绕该运行。 所以如果随机列表是:

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);

  }
}

2 个答案:

答案 0 :(得分: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);
                }
            }
        }

答案 1 :(得分:0)

您需要一个String来显示最终输出。另外,不要走出阵列。 试试这样的事情:

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 + " ";
 }

}