Java 如何打印非';t四个值的连续序列的一部分?

Java 如何打印非';t四个值的连续序列的一部分?,java,arraylist,Java,Arraylist,我是Java的初学者。我想知道如何打印这个反向arrayList的最后两个值,因为它们不是4的连续序列的一部分。我正在考虑使用if(numbers.size()%4==0),但我不知道在哪里正确实现它 import java.util.*; 公共类打印数组{ 公共静态void main(字符串[]args){ ArrayList编号=新的ArrayList(); 增加(10); 增加(13); 增加(2); 增加(8); 增加(7); 增加(90); 数字。加上(-1); 增加(2); 增加(

我是Java的初学者。我想知道如何打印这个反向arrayList的最后两个值,因为它们不是4的连续序列的一部分。我正在考虑使用if
(numbers.size()%4==0)
,但我不知道在哪里正确实现它


import java.util.*;
公共类打印数组{
公共静态void main(字符串[]args){
ArrayList编号=新的ArrayList();
增加(10);
增加(13);
增加(2);
增加(8);
增加(7);
增加(90);
数字。加上(-1);
增加(2);
增加(4);
增加(5);
系统输出打印项次(数字);
系统输出打印LN(反转4(数字));
}
公共静态ArrayList反转4(ArrayList编号){
ArrayListreverseSet=new ArrayList();
对于(inti=0;i=i;k--)//反向顺序,在转到外部循环之前执行4次
reverseSet.add(number.get(k));
}
返回反向设置;
}
}

您可以检查
k
是否在范围内

if (k < numbers.size())

看起来
i
的最后一个有效值应该总是小于数组的大小减去三(除非ArrayList太短,但是您需要不同的代码,因为我前面的答案应该在那里工作)。因此,用
I
替换
I

以下是更改后的
reverse4
方法:

public static ArrayList<Integer> reverse4(ArrayList<Integer> numbers) {
        ArrayList<Integer> reverseSet = new ArrayList<>();
        for (int i = 0; i < numbers.size(); i += 4) {
            if (i + 3 < numbers.size()) { // check if remaining number of elements less than 4
                for (int k = i + 3; k >= i; k--)
                    reverseSet.add(numbers.get(k));

            } else {
                for (int k = i; k < numbers.size(); k++) {
                    reverseSet.add(numbers.get(k));   // add the remaining elements without reversing
                }
            }
        }

        return reverseSet;

    }
publicstaticarraylistreverse4(arraylistnumber){
ArrayList reverseSet=新的ArrayList();
对于(int i=0;i=i;k--)
reverseSet.add(number.get(k));
}否则{
对于(int k=i;k

请注意新的条件,以检查列表是否还有4个剩余元素。

是否要打印
reverseSet
的最后几个元素?是,但我也希望打印最后的值不变。例如,如果我有一个值1 2 3 4 5 6 7的数组,则前4个连续值的倒数将是4 3 2 1,其余值将不加更改地打印出来。所以最后看起来是这样的:43217。取决于arrayList的大小。如果有23个元素,那么就有3个元素是不变的,因为它们不是4序列的倍数,也不是4序列的一部分。这是我的结果:原始的[10,13,2,8,7,90,-1,2,4,5]颠倒了[8,2,13,10,2,-1,90,7,5,4],既然它们不是4序列的一部分,我如何让4和5保持不变?
position |   1      2      3      4   |  5      6      7
---------+----------------------------+--------------------
count    | size-7 size-6 size-5 size-4|size-3 size-2 size-1
            last
            one

position |   1      2      3      4   |  5      6
---------+----------------------------+--------------------
count    | size-6 size-5 size-4 size-3|size-2 size-1
            last
            one

position |   1      2      3      4   |  5
---------+----------------------------+--------------------
count    | size-5 size-4 size-3 size-2|size-1
            last
            one

position |   1      2      3      4   |
---------+----------------------------+--------------------
count    | size-4 size-3 size-2 size-1|
            last
            one
public static ArrayList<Integer> reverse4(ArrayList<Integer> numbers) {
        ArrayList<Integer> reverseSet = new ArrayList<>();
        for (int i = 0; i < numbers.size(); i += 4) {
            if (i + 3 < numbers.size()) { // check if remaining number of elements less than 4
                for (int k = i + 3; k >= i; k--)
                    reverseSet.add(numbers.get(k));

            } else {
                for (int k = i; k < numbers.size(); k++) {
                    reverseSet.add(numbers.get(k));   // add the remaining elements without reversing
                }
            }
        }

        return reverseSet;

    }