这几天的记录,关于分页功能实现的过程中遇到的问题以及解决思路

1.分页功能实现的其中一种方法

下面的这张图片的我分页功能的其中一个实现方法,但是这个实现方法有一个bug,就是如果从当前页查询两页以及两页以上,那么最后一页的内容会完全覆盖掉,前面几页的内容。究其原因是放入返回给前端的mapShowCategory对象里面的showCategorymap对象都是同一个对象,也就是说每次循环体内循环的showCategorymap对象都是前一次循环的对象,所以造成每次循环都会修改前面一次循环的内容这次教训要警惕!!!

解决这个问题的思路分析:

(1)既然showCategory对象每次循环都一样的原因,是因为我们把showCategory对象的声明放在了循环外面,如果我放在里面呢?每次循环会不会创建一个新的对象呢?

开始网上找,确实有人建议把声明放在循环外面,但是经过我的测试,是没有用的 ,看官且看下图

与图一相比,图二的黄线部分是新加上的 ,经过测试也是没有改变,还是最后一页内容覆盖前面所以页数内容

 

(2)分析第二步,既然如此

如果我们创建一个另外一个新的对象进行存储呢?结果测试还是不行

(3)所以得出一个结论,循环体内的同名hashMap对象是同一个对象,不会创建新的对象,就算调用new方法也是不起作用的

(4)那么我最后是如何解决分页功能的实现呢?

其实我用到showCategoryMap.sublist()方法,我直接取出一页的内容装进List对象里面,警惕,这里是List对象,不是Map对象,,而不是一条条取出,然后又拼接成一页。想到之前的幼稚(愚蠢)想法,这个想法好多了,不过就算不能满足一页内容

里面显示这是第几条数据,这是不满意的地方,不过,暂时没有想到更好的办法了,如果有,以后在补充

(5)下面的图是完成分页功能的核心代码

还有最后两行的注释部分,因为hashmap是根据hash算法进行存储。所以,加上汉字以后,hash值 会不一样 ,排序顺序也会不一样,所以返回前端数据就会乱序,这时候的解决办法就算用纯数字,不用加汉字。

(6)最后一个总结的知识点,就是Map对象里面存储list对象,是直接把list对象的内容直接拷贝到map对象里面

不像map对象存进map对象里面,只能是引用,而不是拷贝,这是要注意的!!

##或许是引用吧,个人观点,猜测

 

 

 

 

2.关于迭代器对象Itreator的使用方法

itreator.hasNext(),只是查看是否有下一个元素,如果有就返回真,没有返回false,但是不移动itreator

itreator.next()返回当前元素,并且移动到下一个元素。

这两个家伙通常都是一起使用的的,配套使用,就像打兵乓球要用兵乓球拍一样。

 

3.

晚上,发现自己不小心把同事的pom.xml文件导入到项目里面了,然后很奇怪的就没有了maven选项,我就手贱点了下add_maven_project,结果出现一大堆报错,就算路径不能使用的错误,后来,删除了项目里面其他名称的iml文件,并且把pom文件的值修改了下,

修改的地方如图

 

记住,这三个横线的地方改成你项目的项目名字以及包名

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值