2014-10-31 19 views
0

我一直在試圖找出如何做一段時間,但無法弄清楚。複製一個數組超過一定的值

public static void main(String[] args) { 
    int value [] = new int [20]; 
    int value2 [] = new int [20]; 
    Random randomNumbers = new Random(); 

    for (int i = 0; i <20; i++) 
    { 
     value[i] = randomNumbers.nextInt(201); 
    } 
    Arrays.sort(value); 
    for (int i = 0; i <20; i++) { 
     System.out.println(value[i]); 
    } 

} 

如何將所有值都超過30的值複製到value2,當所有的值都是隨機的?

將appriciate我可以得到任何幫助。

+2

'if(value> 30){'? – 2014-10-31 13:51:49

回答

0

這裏就是你需要:

int value[] = new int[20]; 
int value2[] = new int[20]; 
Random randomNumbers = new Random(); 

for (int j = 0; j < 20; j++) { 
    value[j] = randomNumbers.nextInt(201); 
} 
Arrays.sort(value); 
int k = 0; 
for (int j = 0; j < 20; j++) { 
    if (value[j] > 30) { 
    value2[k] = value[j]; 

    System.out.println(value2[k]); 
    k++; 
    } 
} 
0
int i = 0; 
for (int val: value) { 
    if (val > 30) { 
     value2[i] = val; 
     i++; 
    } 
} 

如果你真的想用arraycopy而且由於你的數組進行排序:

int i; 
for (i = 0; i < 20; i++) { 
    if (value[i] > 30) { 
     break; 
    } 
} 
System.arraycopy(value, i, value2, 0, value.length - i) 

請注意,我沒有測試它,但它應該工作

0
public static void main(String[] args) { 
    int value [] = new int [20]; 
    int value2 [] = new int [20]; 
    Random randomNumbers = new Random(); 

    for (int i = 0; i <20; i++) 
    { 
     value[i] = randomNumbers.nextInt(201); 
    } 
    Arrays.sort(value); 
    for (int i = 0; i <20; i++) { 
     System.out.println(value[i]); 
    } 
    int j=0; 
    for(int i =0; i<20 ;i++){ 
     if(value[i]>30){ 
      value2[j]=value[i]; 
      j++; 
     } 
    } 
    System.out.println("**********************"); 
    for (int i = 0; i <j; i++) { 
     System.out.println(value2[i]); 
    } 

} 
相關問題