Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在旧数组的基础上用java填充新数组_Java_Arrays_Methods_Int - Fatal编程技术网

在旧数组的基础上用java填充新数组

在旧数组的基础上用java填充新数组,java,arrays,methods,int,Java,Arrays,Methods,Int,我有这个问题。我需要在不使用特定方法的情况下获取数组x并将其转换为数组y 示例时间: int[] newArr = new int[5]; newArr[0] = -2; newArr[1] = 4; newArr[2] = 2; newArr[3] = 2; newArr[4] = 5; 给 arr = {-2, 4, 2, 2, 5}; 我需要把它交给 newArr = {-2, -1, 0, 1, 2, 3, 4, 3, 2, 2, 3, 4, 5}; 我不允许使用数组、ArrayL

我有这个问题。我需要在不使用特定方法的情况下获取数组x并将其转换为数组y

示例时间:

int[] newArr = new int[5];
newArr[0] = -2;
newArr[1] = 4;
newArr[2] = 2;
newArr[3] = 2;
newArr[4] = 5;

arr = {-2, 4, 2, 2, 5};
我需要把它交给

newArr = {-2, -1, 0, 1, 2, 3, 4, 3, 2, 2, 3, 4, 5};
我不允许使用数组、ArrayList和Vector。到目前为止,我得到的是:

public static void fillArray(int[] numbers){
    int length = numbers.length;
    for(int i = 0; i < numbers.length - 1; i++){
        if(numbers[i] < numbers[i + 1]){
            length += numbers[i + 1] - numbers[i] - 1;
        }else if(numbers[i + 1] < numbers[i]){
            length += numbers[i] - numbers[i + 1] - 1;
        }
    }
    System.out.println();
    System.out.println(length);
    int[] newArr = new int[length];
publicstaticvoidfillarray(int[]数字){
int length=number.length;
对于(int i=0;i
这给了我需要制作的新数组的长度

我的问题是如何填充新数组,或者使用什么概念

现在是的,这是我参加的00设计课程的一个项目的一部分。不,我不是在寻找答案。我在寻找我可以在代码中实现的想法(if语句、for循环等等),以及我将使用它们的用途。不像你们很多人(我在这里概括)我不是程序员,也不擅长编程。我之所以选修这门课,是因为它是我化学工程专业的必修课,而化学工程专业在Java编程方面做得不多。正因为如此,我知道我必须做什么,我只是不太懂语法,无法自己完成这门课,这就是为什么我要来找大家或者可能对我有用的想法(而不是答案)以及原因(即填写数组)我会使用它们。我之前问过一个类似的问题,人们对我说我只是在寻找答案而我是一个骗子,我不是骗子很生气,这就是为什么我不寻找答案而不得不重新问这个问题,但我是编程新手。帮一个新手出来好吗?地板是你的


编辑:另外,我忘了提到我不知道传入的数组,我只是举了一个例子,所以立即将这些数字放入我的新数组是不实际的。

我会这样做

for(int i=0;i<newArr.length;i++){
if(element !in oldArr){
   newArr[i] = i
}else{
 newArr[i] = oldArr[element]
}
 }

for(int i=0;i如果我正确理解了您的问题,您将尝试创建一个新数组,以填补空白,从旧数组的最低数量开始,以新数组的最高数量结束

因此,首先需要找到该数组中的最低元素

第二,找到最高的数字

第三,找出长度。长度是最高和最低值之间的差值,然后加上1。abs(最高-最低)-1abs是绝对值,最高和最低值当然是整数

最后,使用for循环(或任何您喜欢的)填充数组。应该有两个数字递增。对于数组的索引,另一个用于数组中元素的值;它应该从最低开始,递增一。这应该填充数组


我希望这是清楚的。因为你说你不想要答案,而想要想法,所以我只向你解释了它,让你自己去弄清楚代码。

我想我现在明白你的意思了

因为您说过已经计算出长度的代码,所以下一步将填充数组:

您将有一个嵌套循环。外部循环的条件为i 内部循环将跟踪当前元素(j)和下一个元素(j+1),因此创建另一个变量来执行此操作。您必须计算它是否小于或等于(if语句)。如果小于,则内部循环将一直运行,直到到达该元素。如果大于,则显然相反。整个循环应在新数组的整个长度上运行


这应该可以填补空白

这是我的方法,正如您所描述的那样有效

int j = 0;
int[] newArr = new int[]{ -2, 4, 2, 2, 5};
int[] values = new int[13]; // length equals the count you calculated
for (int i = 0; i < newArr.length - 1; i++) {
   int currentNumber = newArr[i];
   int nextNumber = newArr[i+1];
   boolean ascending = currentNumber < nextNumber;
   values[j++] = currentNumber;
   if (ascending) {
      for (int k = 1; k < nextNumber - currentNumber; k++)
      {
         values[j++] = currentNumber + k;
      }
   } else {
      for (int k = 1; k < currentNumber - nextNumber; k++)
      {
         values[j++] = currentNumber - k;
      }
   }
}
values[j++] = newArr[newArr.length - 1];
intj=0;
int[]newArr=newint[]{-2,4,2,2,5};
int[]value=new int[13];//长度等于您计算的计数
for(int i=0;i
在这里,我想我需要一个临时长度,从newArr[I+1]开始,等于数字-1之间的差。我不需要从最低开始,以最高结束。我从旧数组的第一个元素开始,以最后一个元素结束。数组可以做任何介于这两者之间的事情,只要有数字(也就是说,它可以上升,也可以下降)。我有一个新数组的长度,我用for循环巧妙地计算了这个长度。我想我最大的问题是如何让程序知道它需要用哪些数字来填补空白,因为数组可能有一些疯狂的东西,比如{1,6,7,3,-4,2},所以如果旧数组是{-2,3,-4,5,6,-10,10,15,-5}新的是什么?如果是旧的数组,新的是{-2, -1, 0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5}.长话短说,它不会对它们进行排序,它只会填充元素之间的数字。我不确定我是否理解这个问题,但数组不会对数字进行排序。它只会填充正在计算的元素之间的数字。因此,我正在创建一个新数组,其中数字[0]=newArr[0],但af