在while循环中从数据库获取数据在添加到list集合中输出结果数据正常(十六个数据正常),而在循环外输出,显示只有最后一个数据(第十六个数据),怎么解决啊?best wish for you

img

img


在while循环中从数据库获取数据在添加到list集合中输出结果数据正常(十六个数据正常),而在循环外输出,显示只有最后一个数据(第十六个数据),怎么解决啊?best wish for you

  • 以下回答由chatgpt基于相关博客总结生成:

    问题解决方案:

    问题是循环中将数据添加到list集合中,但在循环外输出时只有最后一个数据被显示。这是因为循环中每次将数据添加到list集合中,实际上是添加了一个指向同一地址的对象,因此最后输出时只有最后一个数据显示。

    为了解决这个问题,需要在循环中每次都新建一个对象,并将数据添加到该对象中,然后将该对象添加到list集合中。代码如下:

    List<Object> dataList = new ArrayList<>(); //定义list集合,用于存放数据
    
    while(条件){ //循环获取数据
        Object newData = new Object(); //每次都新建一个对象
        //将数据添加到newData对象中
        newData.setXXX(...);
        //newData对象添加到list集合中
        dataList.add(newData);
    }
    
    //输出list集合中所有数据
    for(Object data : dataList){
        System.out.println(data);
    }
    

    这样做可以确保每个数据被独立存储,避免添加了指向同一地址的对象,从而避免了只有最后一个数据被显示的问题。

while循环外面已经声明StudentBean对象了 把StudentBean放到while里面