Java 我不知道';我不明白为什么我的手工回答不同
下面是代码:Java 我不知道';我不明白为什么我的手工回答不同,java,Java,下面是代码: import java.util.*; public class HelloWorld{ public static void main(String []args){ ArrayList<Integer> what = new ArrayList<Integer>(); what.add(3); what.add(7); what.add(2); for (int
import java.util.*;
public class HelloWorld{
public static void main(String []args){
ArrayList<Integer> what = new ArrayList<Integer>();
what.add(3);
what.add(7);
what.add(2);
for (int i=0; i<4;i++)
{
if(i%2==0)
{
what.add(0,i);
}
else
{
what.set(i,(what.get(i)*2));
}
}
what.remove(3);
System.out.println(what);
}
}
import java.util.*;
公共类HelloWorld{
公共静态void main(字符串[]args){
ArrayList what=新的ArrayList();
加上(3);
加上(7);
加上(2);
对于(inti=0;i这里我已经用hand为您调试了它。看看哪里出了问题。
add()函数将提供的整数添加到您选择的位置,而set()函数将提供的整数替换为您选择位置的整数
我不确定您手上是怎么做的,但程序的预期输出是正确的。您可以调试它,看看您偏离了什么,得到了什么[2,0,2,2]
在任何情况下,数组“what”都没有此值
i = 0, [Start: 3,7,2 ]
i = 1, [Start: 0,3,7,2]
i = 2, [Start: 0,6,7,2]
i = 3, [Start: 2,0,6,7,2]
Loop End: [2, 0, 6, 14, 2]
Remove what[3]
Final Value: [2, 0, 6, 2]
您使用的是什么逻辑。根据编译器,您提供的逻辑是正确的。您可以通过每次修改数组时将其记录到控制台来检查数组中的值。这样,您就可以清楚地了解数组在每个步骤中包含的内容,并可以将其与手动执行的步骤进行比较。
i = 0, [Start: 3,7,2 ]
i = 1, [Start: 0,3,7,2]
i = 2, [Start: 0,6,7,2]
i = 3, [Start: 2,0,6,7,2]
Loop End: [2, 0, 6, 14, 2]
Remove what[3]
Final Value: [2, 0, 6, 2]