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;而不是this
    if(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