Java 返回之字形数组

Java 返回之字形数组,java,Java,我有两个问题: public static int[] everyOther(int[] arr) 给定整数数组arr,创建并返回一个新数组,该数组精确地包含数组arr中偶数位置的元素。请确保您的方法对奇数和偶数长度的数组以及包含零个或仅一个元素的数组都能正常工作。返回的结果数组的长度必须完全正确,以便在数组末尾没有多余的零 public static int[][] createZigZag(int rows, int cols, int start) 这个方法创建并返回一个新的二维整数数

我有两个问题:

public static int[] everyOther(int[] arr)
给定整数数组arr,创建并返回一个新数组,该数组精确地包含数组arr中偶数位置的元素。请确保您的方法对奇数和偶数长度的数组以及包含零个或仅一个元素的数组都能正常工作。返回的结果数组的长度必须完全正确,以便在数组末尾没有多余的零

public static int[][] createZigZag(int rows, int cols, int start)
这个方法创建并返回一个新的二维整数数组,在Java中它实际上只是一个一维数组,其元素是int[]类型的一维数组。返回的数组必须具有正确的行数,且每个行的列数正好是cols列。此数组的行中必须按顺序包含数字start、start+1、…、start+rows*cols-1,但每个奇数行中的元素必须按降序列出

例如,当使用rows=4、cols=5和start=4调用时,此方法应创建并返回内容为的二维数组

 4     5     6     7     8
13    12    11    10     9
14    15    16    17    18
23    22    21    20    19
当以传统的矩阵形式显示时,与元素为一维行数组的一维数组的更真实形式相比,人类可读性更强

public static int[] everyOther(int[] arr){
    for (int i = 0 ; i < aList.size() ; i+=2)
    {
        return( aList.get(i) + "  ") ;
    }               
}

public static int[][] createZigZag(int rows, int cols, int start){
    { 
        int evenRow = 0; 
        int oddRow = 1;  

        while (evenRow < rows)  
        { 
            for (int i = 0; i < cols; i++) 
            { 
                return(start[evenRow][i] + " ");  
            } 

            evenRow = evenRow + 2;  

            if(oddRow < rows) 
            { 
            for (int i = cols - 1; i >= 0; i--) 
            {  
                return(start[oddRow][i] + " ");  
            } 
            } 
            oddRow = oddRow + 2;  
        }  
    }
}

这有意义吗?

尝试将此作为练习的尝试解决方案

注:

如果复制粘贴整个代码,请确保您的类文件名为TestExample,如下所示。 main方法内部只是一些测试,这样您就可以看到打印的输出,并可以对其进行验证。您可以忽略Arrays.toString,它只是以更好的格式将int[]数组打印到屏幕上。 无论你在哪里看到期末考试,你都可以忽略它或暂时删除它,因为你仍然在学习这门语言。简单地看一下,这意味着您不打算更改此变量。在继续学习语言之后,再次访问此,但这次考虑将变量名锁定到封闭范围内的特定引用。但它并不保证值的不变性,除非它是一个原始值int、long、float、double等。 请注意,在将任何值指定给数组的特定位置之前,必须先初始化数组的维度。 对于everyOther方法,请注意Java在其索引中是以零为基础的,因此在数组中是新的int[]{8,9,10,11};第一个奇数索引值是9,第二个是11。 一般建议:如果您现在开始使用一种语言,请使用像Eclipse这样的IDE,它是免费和开源的、IntelliJ免费的或NetBeansfree和开源的。它会在代码中的错误下加红色下划线,如果配置了,还会显示危险操作的警告消息

代码:


不,这没有道理。您的方法应该返回int[]和int[]。您没有返回任何内容,而是打印。
import java.util.Arrays;

public class TestExample
{
    public static int[][] createZigZag(final int rows, final int cols, int start)
    {
        final int[][] array = new int[rows][cols];
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                array[i][j] = start;
                start++;
            }
        }
        return array;
    }

    public static int[] everyOther(final int[] array)
    {
        int otherArrayLength;
        if (array.length % 2 == 0)
        {
            otherArrayLength = array.length / 2;
        }
        else
        {
            otherArrayLength = array.length / 2 + 1;
        }
        final int[] otherArray = new int[otherArrayLength];

        int count = 0;
        for (int i = 0; i < array.length; i += 2)
        {
            otherArray[count] = i;
            count++;
        }
        return otherArray;
    }

    public static void main(final String[] args)
    {
        final int[] testArray = new int[] { 0, 1, 2, 3, 4, 5, 6 };
        final int[] everyOtherArray = everyOther(testArray);
        System.out.println(Arrays.toString(everyOtherArray));

        final int rows = 4;
        final int cols = 5;
        final int start = 4;
        final int[][] zigzagArray = createZigZag(rows, cols, start);
        for (int i = 0; i < rows; i++)
        {
            System.out.println(Arrays.toString(zigzagArray[i]));
        }
    }
}