Java 如何打印非';t四个值的连续序列的一部分?
我是Java的初学者。我想知道如何打印这个反向arrayList的最后两个值,因为它们不是4的连续序列的一部分。我正在考虑使用ifJava 如何打印非';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); 增加(
(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;
}