Java中向ArrayList c添加整数1后打印为空,原因是什么?
ArrayList插入整数1后打印为空的原因分析
我在ArrayList c中插入了整数1,但打印该ArrayList时显示为空,请问这是为什么?
相关代码
public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); ArrayList<Integer> a=new ArrayList(); int a1=sc.nextInt(); for(int i=0;i<a1;i++) { System.out.println("enter Elements"); a.add(sc.nextInt()); } int b1=sc.nextInt(); ArrayList<Integer> b=new ArrayList(); for(int j=0;j<b1;j++) { System.out.println("enter elemets for b"); b.add(sc.nextInt()); } ArrayList<Integer> c=new ArrayList(); for(int i=0;i<a.size();i++) { for(int j=i;j<=i;j++) { if(i>j) c.add(1); if(i<j) c.add(1); } } System.out.println(c); }
Java控制台输出
3 请输入元素 1 请输入元素 2 请输入元素 3 3 请输入b的元素 3 请输入b的元素 2 请输入b的元素 1 []
原因分析
直接导致ArrayList c为空的问题出在嵌套循环的逻辑上:
- 内层循环
for(int j=i;j<=i;j++)的条件决定了j的取值永远等于i,循环只会执行一次 - 后续的两个判断
if(i>j)和if(i<j),因为i和j始终相等,这两个条件永远都不会成立,所以c.add(1)代码永远不会被执行 - 另外注意,代码里完全没有用到ArrayList b的内容,可能是原本的逻辑没完成,但这不是c为空的直接原因
内容的提问来源于stack exchange,提问作者Charan kalidindi
相关产品推荐
相关产品推荐

