从现有数组

时间:2015-04-27 08:35:41

标签: java arrays

我已经有一个数组,其随机数介于0-999之间。 我还创建了两个新阵列,一个正确的大小可以容纳所有数字0-499,另一个正确的大小为500-999。

问题是然后循环通过数组保存所有数字并将正确的数字0-499和500-999复制到新数组。

任何人都知道正确的方法吗?现在花了很多天试图解决这个问题。

到目前为止我得到了什么:

   public static void main(String[] args) {

    Scanner scannerObject = new Scanner(System.in);
    Random generator = new Random();

    System.out.print("How many numbers between 0 - 999?" );
    int number= scannerObject.nextInt(); 

    int [] total= new int[number]; 

    for(int index = 0; index < total.length; index++ ) 
    {   
        total[index] = generator.nextInt(1000); 
    }

    System.out.println("Here are the random numbers:");

    for(int index = 0; index < total.length; index++ )
    {   

        System.out.print(total[index]+ " ");    
    }

    int lowNumber=0;
    int largeNumber = 0;
    for(int index = 0; index < total.length; index++ )  
    {   
        if (total[index] < 500)
        {       
            lowNumber++;    
        }

        if (total[index] >= 500)
        {
            largeNumber++;
        }
    }
    System.out.println();
    System.out.println(lowNumber);
    System.out.println(largeNumber);

    int [] totalLownumber = new int [lowNumber];
    int [] totalLargeNumber = new int [largeNumber];

    for(int index = 0; index < total.length; index++ )  
    {   // TODO
    }
}

2 个答案:

答案 0 :(得分:3)

您可以采取的方法如下:

  1. 您可以浏览初始数组,计算您拥有的元素,并使用计数器值来定义所需数组的大小。然后再次检查原始数组并将元素复制到各自的数组中。您可以再次使用计数器值(您需要先重置它们),以便跟踪当前数字所需的阵列位置。这应该与你正在做的类似。

  2. 考虑使用可变长度数据结构,例如List(Java中的ArrayList)。这样您就可以浏览原始数组并将数字分配到各自的列表中(让我们称之为largeNumberListlowNumberList)。由于这些集合具有动态大小,因此您只需要遍历数组一次并随着时间分配。

  3. 后一种方法通常是经常使用的方法,但是,因为看起来这个问题与家庭作业有关,我建议你尝试两种方法并进行比较。

答案 1 :(得分:0)

试试这个:

task :download_composer do
  run "cd " + release_path + " && curl -s https://getcomposer.org/installer | php"
end

before "symfony:composer:update", "download_composer"
before "symfony:composer:install", "download_composer"