You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:10:23