把map放入List时为什么list=new ArrayList();写在while语句上面没问题,写在while里面,
在网页上查询时只能读到一个数据
因为你这样写的话,每次while循环一次,都会创建一个新的List并赋值给list变量,然后把你的map存进去。
所以最后你在页面上只能读到一个。
这个while不是循环啊,我没写迭代语句,这就是让他下移一行而已
放入while里你每次实例化一次,所以你拿到的只是最后一个,来个比方:list像一个杯子,add像盛水,放在while外就是每次都用这杯子去盛水,杯里就有你盛的所有水。放在while内就相当于你每次用一个新杯子去盛水,你喝的是最后的杯子,而最后的杯子盛的只是最后一滴水。望采纳。
当然要写在外面啊,否则每次while的时候都重新new了一个列表,并且只加入了一个记录。
最后这个对象其实就是最后一次new的对象,当然只有一条记录的。
list应该是在while循环外面初始化,不然每次循环都再new一个ArrayList对象,然后再add,这样当然就只有一个了。
理解new的意思,每次循环都new一个新的对象,list = new ArrayList(); 这个list对象指向的内存地址已经发生变化了,已经不再是之前的对象了。