实习周记---20180609

隔了半个月又来记周记啦!第一个项目终于完工了,想想真有点不可思议,那么复杂的东东居然是自己做出来的,当然了过程还是很艰辛的,都是泪。。。

这两周主要完成了几个新的需求,其中最难实现的是,点击top100的某个数,可以看到这个数的详细信息。因为我算top100的时候是用的int数组,里面只存的数,并没有对应的详细信息,所以就又建了一个String数组,里面存着详细信息。难点是怎么把int数组和String数组对应。如果直接用java自带的sort排序,int排好了但是String就乱套了。

方法是改写冒泡排序(当然也可以改写快排),在int数组中数据交换的时候,String数组中的同样脚标的数据做同样的操作。

这里的top100是几亿数的top100,借鉴了堆排序的思路,维护一个100大小的数组,并且对其排序,然后一条一条数据过,发现比这个数组中最小值要大的,就替换一下,然后再对数据排序。这样把几亿条数据过完,这个数据就是top100。

另外就是修改了一个小bug,之前一直没仔细追究。空下来处理了一下,发现是for循环(int i=0……),循环中间忘了用i,直接写的0。。。

页面加载慢的原因也找到了,初步推测是因为php中连接redis过于频繁,连接次数过多导致时间过长。解决办法就是修改java存入redis时的逻辑,减少key,增加field,这样php取数时,连接key的次数就会减少,然后用mget方法,一次性取多个field数据,这样页面打开速度就会大大提升!

总之,作为自己的第一个在公司做完的项目,虽然只是一个大项目中的小模块,但还是很满意的哈哈哈~

 

 

2020年03月19日,这里是毕业快一年后,对当时排序问题的解答补充。算top100的时候,直接是对对象进行操作就好了,建个对象,包括一个Integer和一个String。

针对对象进行排序,代码如下:

        List<Apply> applySort  = applyHistory.stream().sorted(Comparator.nullsLast(Comparator.comparing(Apply::getApplyDate))).collect(Collectors.toList());

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值