Java 从另一个数组加载数组
它似乎不能正常工作 "Java 从另一个数组加载数组,java,Java,它似乎不能正常工作 " 公共类垃圾{ 公共静态void main(字符串[]args){ int[]Arr={1,0,1,1,0,1,0}; int[]newArr=null; 对于(int i=0;i
公共类垃圾{
公共静态void main(字符串[]args){
int[]Arr={1,0,1,1,0,1,0};
int[]newArr=null;
对于(int i=0;i 如果(i不使用数组。定义数组时,数组必须具有恒定长度,因此,如果要向数组中添加新条目,最好使用Arraylist,因为添加新元素时可以更改Arraylist的长度,而不是具有固定长度的数组
List<int[]> newArr = new ArrayList<int[]>();
我很高兴围绕此解决方案开展工作,以满足您的需要。我希望其中的一些内容有所帮助。您的isPowerOfTwo()
方法中的问题
我记得数组的索引范围是从0到长度-1,所以你可能不想检查i是否是2的幂。在你的循环中,你每次迭代都要重新定义newArr
。上一次达到else条件的迭代是唯一一次坚持的迭代。好吧,如果它编译了,它会坚持的。我刚刚读了添加的代码,我得到了一个er当您尝试访问newArr[i]时,是否会收到NullPointerException
?您只需要执行newArr=null
,无法编制索引。我更希望使用PowerofTwo方法来验证它是否应放置9。我需要它与我的程序一起工作,而不是使用两个if命令,您可以只使用if(PowerofTwo(Arr[index])。这可能同样有效?我认为您遇到的主要问题是处理数组的长度,而使用ArrayList应该可以克服这一问题。我仍然无法正确处理它:/if(I==1 | | I==0){return true;}else if(I%2==0&&I%3!=0){return true;}return false;而不是thisif(I==1 | I==0)
仅如果(i==1)
正如你想在索引1.hmmm处得到9,不是这个1,9,9,1,0,0,0,0,0,已解决:如果(isPowerOfTwo(i+1)==true)只需要添加1,则不会解决。你将在1 3 5处得到9…但不是1 2 4。让我提醒你数组索引从0开始,而不是从1开始。
List<int[]> newArr = new ArrayList<int[]>();
index = 0;
do {
if (index == 0) {
newArr.add(9);
newArr.add(9);
} else if (index == 1 || index == 4) {
newArr.add(9);
}
newArr.add(Arr[index]);
index = index + 1;
while (index < Arr.length);
int[] newArr = new int[10];
if (i == 1) {
return true;
}
else if (i%2==0 && i%3!=0) {
return true;
}
int[] Arr = {1,0,1,1,0,1,0,1,0,1};
1,9,9,1,9,1,0,1,9,1
^ ^ ^ ^
1 2 4 8