Java 将数组放入更大的数组中

Java 将数组放入更大的数组中,java,Java,我有一个术语数组(术语表示具有系数和度的对象,例如1.0x^6)。我现在拥有的数组包含3个术语: [1.0x^6, 4.0x^5, 10.0x^0]. 我的目标是用这些项创建一个更大的数组,但也要用系数为0的项创建一个数组,这些项在我的数组中没有表示。这可能不太清楚,因此我希望我的新阵列基本上是这样的: [1.0x^6, 4.0x^5, 0.0x^4, 0.0x^3, 0.0x^2, 0.0x^1, 10.0x^0]. 目前,我正在迭代我的原始数组,如果度等于新的array.length-

我有一个术语数组(术语表示具有系数和度的对象,例如1.0x^6)。我现在拥有的数组包含3个术语:

[1.0x^6, 4.0x^5, 10.0x^0].
我的目标是用这些项创建一个更大的数组,但也要用系数为0的项创建一个数组,这些项在我的数组中没有表示。这可能不太清楚,因此我希望我的新阵列基本上是这样的:

[1.0x^6, 4.0x^5, 0.0x^4, 0.0x^3, 0.0x^2, 0.0x^1, 10.0x^0]. 
目前,我正在迭代我的原始数组,如果度等于新的
array.length-1
,我将设置
newArray[I]=array[I]
,如果这有意义的话。例如,对于第一个术语和
i=0
,度是
6
,因此如果
6=newArray.length-1
(即6),则
newArray[i]=array[i]

然而,问题是数组小于
newArray
,因此我得到了一个越界错误。有没有办法解决这个问题?抱歉发了这么长的帖子,谢谢

编辑:这是我的实际代码。对不起,解释不清楚

int max = 0;
    Term temp;

    for(int i=0; i<array.length; i++) {
        max = i;
        for(int j=i; j< array.length; j++) {
            if(array[j].getDegree() > array[max].getDegree()) {
                max = j;
            }

        }
         temp = array[i];
         array[i] = array[max];
         array[max] = temp;
    }
int max=0;
术语温度;
对于(int i=0;i数组[max].getDegree()){
max=j;
}
}
温度=阵列[i];
数组[i]=数组[max];
数组[max]=温度;
}
上面,数组按降序排序。现在,我想让新数组包含旧术语,但也包含0x^I,表示我的术语集中未使用的所有I

Term[] newArray = new Term[this.degree()+1];
    for (int c = 0; c < newArray.length; c++) {
        if (array[c].getDegree()==newArray.length-1-c) {
            newArray[c] = array[c];
        }
        else {
            newArray[c] = new Term(0, newArray.length-1-c);
        }

    }
Term[]newArray=newterm[this.degree()+1];
for(int c=0;c

我上面的代码中有一些问题,我现在可以看到,因为在for循环中,数组[c]没有为任何c>2定义。Eclipse告诉我有一个越界错误。

数组的大小是固定的。如果要创建更大的数组,需要事先知道大小并相应地定义它。此外,您似乎正在使用相同的迭代变量遍历这两个数组

我假设你正在做这样的事情:

for(i=0;i<newArray.length;i++){
 newArray[i] = array[i]; //size of newArray is bigger than array
}
for(i=0;i=array.length)


你需要修正你的代码逻辑。

不要描述你的代码、你的帖子,也不要包含实际的代码。原始数组中的度数是否总是降序排列?@Sweeper是的,我对原始数组进行了排序,并使其按度数降序排列。我更新了原始帖子以显示我的实际代码。我知道网元的大小w array,它将是我的原始数组+1中最高项的阶数(在我的代码中用这个.degree+1表示)。但是我仍然有问题。问题似乎是这行代码:array[c]。getDegree()==newArray.length-1-c您的“c”作为迭代变量一直到newArray.length,它大于“array”的大小然而,在上面的代码行中,您使用的是数组[c]。数组索引在if条件下将超出范围。看起来您正在做的正是我在原始答案中提到的“if”中所做的事情condition.UPDATE:我多次重读你的评论,最后点击了一些东西。我更改了for循环,我的这部分代码现在可以工作了!不过我还有另一个问题。如果你不介意阅读,你希望我复制并粘贴我的代码在这里,还是创建一个新的问题?谢谢提供一个新的问题,以便其他人可以回答你也看到了吗?如果我的回答帮了你的忙,请投票:)投票。显然我太新了,不能再发帖了!必须等到明天。。。