Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 - Fatal编程技术网

Java如何获取数组的第二个元素

Java如何获取数组的第二个元素,java,arrays,Java,Arrays,我正在处理一个赋值,它要求用户输入一个未确定的整数数,然后这些数将用于其他计算。但举例来说,如果我有这6个数字。1 2 3 4 5 6我只想从输入中提取2 4和6我该怎么做?(请注意,这只是一个示例,用户可以输入20个不同的数字,或仅输入4个)我只希望能够选择拾取每一个第二个元素。要添加更多信息,我需要数组中的第一个数字用于一次计算,然后第二个用于另一次计算,然后是第一个和第二个。基本上,我希望能够将每个偶数数组的索引号分配给一个整数,将每个奇数数组的索引号分配给另一个整数。像这样: “如果(i

我正在处理一个赋值,它要求用户输入一个未确定的整数数,然后这些数将用于其他计算。但举例来说,如果我有这6个数字。1 2 3 4 5 6我只想从输入中提取2 4和6我该怎么做?(请注意,这只是一个示例,用户可以输入20个不同的数字,或仅输入4个)我只希望能够选择拾取每一个第二个元素。要添加更多信息,我需要数组中的第一个数字用于一次计算,然后第二个用于另一次计算,然后是第一个和第二个。基本上,我希望能够将每个偶数数组的索引号分配给一个整数,将每个奇数数组的索引号分配给另一个整数。像这样:

“如果(i%2==0){int first=number[i]; System.out.println(“这是第一个”+第一个)} else如果(i%2==1){int second=number[i];System.out.print(“这是第二个。”+second);}” 但是当我这么做的时候,它只出现在第一个


由于数组索引从
0
开始,因此需要收集数组中索引为奇数的所有元素

//数字中的所有第二个元素都被收集到部分数组中
int[]部分=新的int[numbers.length>>1];
//i=1的初始值意味着首先迭代第一个或第二个元素
//i+=2表示迭代数组中的第二个元素
对于(int i=1;i>1]=数字[i];
}

为了澄清,您希望数组的每一次迭代都不受数字顺序的影响?因此,在本例中,数字数组可以是4,2,6,8,返回值应该是2和8

如果是这种情况,那么您可以将for循环指定为仅每秒读取一次

为此,您需要数组的长度

int arrLength = arr.length;
for (int i = 1; i < arr.length; i = i+2) {
#dosomething
}
int arrLength=arr.length;
对于(int i=1;i
如果您熟悉Java 8流,那么您可以使用
IntStream
生成索引,然后挑出每个单数:

int[] everySecond = IntStream.range(0, array.length)
    .filter(i -> i % 2 == 1).mapToInt(i -> array[i]).toArray();
//这是用户提供的
int[]userInput={};
int[]pickedNumbers=newint[userInput.length/2];
if(userInput.length>1)
{
for(int i=1;i
是,我知道如果我想要第二个索引,我必须使用数组[1]但是,如果我想要第23个数组索引,但我在编码时不知道会有第23个数组索引。这取决于用户输入的数量。你知道如何编写for循环吗?花点时间考虑起始索引是什么,以及在迭代数组时要增加多少索引。你需要吗d收集数组中索引为奇数的所有元素,因为数组索引开始于
0
。我解决了一些可能的重复问题。还需要注意的是,数组的总迭代次数应始终为n-1,其中n是数组的长度。如果用户输入10个数字,则数组的总长度为10。但是,当逐次读取数组迭代时,您将始终从0开始计数…因此在本例中,最大迭代将为9。这也是为什么我们使用<而不是,但我如何使用数字4和6?因为如果我对(int I=0;Iint[] everySecond = IntStream.range(0, array.length) .filter(i -> i % 2 == 1).mapToInt(i -> array[i]).toArray();
    // This is from user
    int[] userInput = {};

    int[] pickedNumbers = new int[userInput.length/2];
    if(userInput.length > 1)
    {
        for (int i = 1; i < userInput.length; i = i + 2)
        {
            pickedNumbers[i / 2] = userInput[i];
        }
    }
    // pickedNumber is  the array you can use.