一个简单的遍历需求

news/2024/9/23 5:22:45/文章来源:https://www.cnblogs.com/Go-Solo/p/18332136

今天开发一个前端遍历展示的接口,被前端怼了

看图需求很简单

  1. 多行展示
  2. 每行多个,可显示更多,每行可左右滑动

为了图省事简单组装一下直接返回回去了,方便是真的方便,前端生气也是真的生气,可以简单对这个横向、纵向接口压缩一下

  1. 横向空间上,可以取分页,前端自己传,无论是懒加载还是更多,根据pageSize、返回的数据量决定,可以提供给前端自定义的空间
  2. 纵向空间上,入参加入 type,前端自己写死对应枚举

这样无论扩展还是数据冗余都有比较大的改善

    /*** 兑换页信息*/@RequestMapping("tab")public ResultVO<ShopTapBrieVo> tab(@RequestHeader(HttpHeadConstant.lgType) int lgType,@RequestParam int tabType,@RequestParam int pageIndex,@RequestParam int pageSize) {return ResultVO.success(shopService.tab(tabType, pageIndex, pageSize, lgType));}// servicepublic ShopTapBrieVo tab(int pageIndex, int pageSize, int type, int lgType) {for (ShopTab shopTab : ItemManager.getShopTabs()) {if (shopTab.getId() != type) {continue;}ShopTapBrieVo vo = new ShopTapBrieVo();LanguageInfo language = LanguageManger.getLanguage(Module.SHOP, ItemManager.TYPE2_SHOP_TAP_NAME, 0, shopTab.getId(), lgType);if (language != null) {vo.setTapTitle(language.getContext1());} else {vo.setTapTitle(shopTab.getName());}List<ShopDefineBrieVo> collect = ItemManager.getShopTabDefines(shopTab.getId()).stream().map(e -> new ShopDefineBrieVo(e, lgType)).collect(Collectors.toList());// 内存分页int total = collect.size();int fromIndex = Math.min(pageIndex * pageSize, total);int toIndex = Math.min((pageIndex + 1) * pageSize, total);vo.setVos(collect.subList(fromIndex, toIndex));return vo;}return null;}

由于规则数据是预加载到内存中,所以直接使用内存分页,由于 subList 采用的是视图,并不会创建多余的对象,这里顺便回顾一下其他知识 java集合中sublist()的坑

这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.cnblogs.com/Go-Solo");
console.log("原文地址:https://www.cnblogs.com/Go-Solo/p/18332136");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774029.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一个MySQL数据库表结构导出word文档最方便的方法

原文链接:https://blog.csdn.net/typ1805/article/details/83658708 1、使用的是MySQL-Front工具,这个工具使用非常方便,尤其是导出数据的时候,几百万的数据一两分钟就导完了,推荐使用。 MySQL-Front下载(只有3.93M):https://mysql-front.en.softonic.com/ 注:新版本和…

排球比赛计分程序模拟冲刺(sprint)

模拟冲刺计划(spring) 选择小的用户故事模拟冲刺: 裁判张三、业余排球比赛组织者李四、排球运动员王五 一、任务拆分与开发时间:裁判张三:任务 1:开发操作指南和演示视频- 时间:第 1 天 任务 2:实现提前设置比赛基本信息功能- 时间:第 2 天 任务 3:设计简便计分操作界面…

代码随想录day14 || 226 翻转二叉树,101 对称二叉树, 104 二叉树的最大深度, 111 二叉树的最小深度

226 翻转二叉树 func invertTree(root *TreeNode) *TreeNode {// 思考,广度优先遍历,对于每一层,翻转其左右子节点if root == nil {return nil}queue := list.New()queue.PushBack(root)size := 1 // 存储每一层的节点个数for queue.Len() > 0{var count intfor i:=0; i&…

【数值计算方法】数值积分微分

《现代数值计算方法 第二版》1. 引言 高数中计算积分思路基本是牛顿莱布尼兹法: \[I[f]=\int_{a}^{b}f(x)\mathrm{d}x=F(b)-F(a), \]\[F^{\prime}(x)=f(x). \]实际计算中,原函数一般无法求出.给不出解析解,只能求出数值解. 设在区间 [a,b]( 不妨先设 a,b 为有限数 ) 上 ,\(f(x)…

经典的反转

def reverseArr(arr, start, end):while(start < end):arr[start], arr[end] = arr[end], arr[start]start +=1;end -=1def fun(arr,d, n):reverseArr(arr,0, n-1)reverseArr(arr, n-d, n-1)reverseArr(arr,0, n-d-1)arr = [1,2,3,4,5,6,7] fun(arr,2,len(arr)) print(arr)

【日记】今天又是哪朵小云不开心了呀(1886 字)

正文上午上班没多久,天就特别阴,感觉像是要下暴雨的样子。前台接了一个电话,家里人打来的,她妈妈叮嘱她,要注意一点。他们那边已经开始下了。她转过头对我笑笑说,原来下雨在一个城里也能不同步。当时我笑了笑,对她说,局部降雨还有更局部的,然后打开的视频网站,随便点…

51nod两问-Pinball等

问题1-Pinball为什么这样解释的通,我看不懂什么意思?还有这个 \(e\) 在后面状态中没有体现。具体做法?为什么只有 \([a_i,c_i]\) 需要考虑?他可以往左边掉。那么从 \(n\) 开始掉又如何考虑 Kamp手绘的图:这个图似乎就不满足了。不知道什么意思。这个思路怎么做。

2024.7.26模拟赛8

模拟赛 抽象比赛,含金量最高的是题目背景? 好像还是连续的。。。 T1 Same Integers 题目背景签到题,因为只有加操作,目标是将两个较小的数加成最大的。 根据差的奇偶判断能否加二得到,如果不能先加一调一下。(简单题,题解抽象一点也没事吧)code #include<bits/stdc+…

大道至简读后有感

《大道至简》读后有感 作为一名初学计算机语言的学生,在语言的学习过程中,总会有各种问题困扰我。在阅读《大道至简》这本经典软件工程读物之前,我过去常常是追求复杂性和繁琐的代码设计。因为我觉得这样能体现我的个人水平,更“高级”之类的,我会为了实现某个功能而不断添…

mongodb数据库范围分片数据分布不均匀

【说明】 当前使用mongodb分片,三个分片mongos> sh.status() --- Sharding Status --- sharding version: {"_id" : 1,"minCompatibleVersion" : 5,"currentVersion" : 6,"clusterId" : ObjectId("66a30ccca62de41d6b0241a4&…

Markdown排版规范

Markdown 语法虽然多,但随便乱用的话反而会显得不美观,本文就推荐一些常见的排版规则。Markdown 语法虽然多,但随便乱用的话反而会显得不美观,本文就推荐一些常见的排版规则。 ‍ ‍ Markdown 标记的使用规范 ‍ 标题一级标题,通常是用来写文章的标题。而大部分情况下,文…