我一直试图找出如何做到这一点,但无法弄明白。
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?
我会得到任何帮助。
答案 0 :(得分: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)
请注意,我没有测试它,但它应该可以正常工作
答案 1 :(得分: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]);
}
}
答案 2 :(得分: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++;
}
}