搜索网上的分页表格案例大部汾是使用for循环来渲染表格列,那样只能支持纯展示的数据对于需要特殊处理的字段无法支持(eg:案例中的’状态’列,需要将状态码转換成中文)
为了解决这个问题,使用了插槽特性
代码稍长,必要的注释都注明在代码中文末附使用案例。建议先跑起来使用案例看效果再深入代码。
代码上传在 前端代码在线编辑器codesandbox 中可直接查看编辑:
Java集合中的form表单提交list对象、Set和Map作为Java集合食物链的顶级可谓是各有千秋。本文将对于form表单提交list对象、Set和Map之间的联系与区别进行介绍以及这三者衍生出来的问题进行介绍(若无特地说明,jdk版本皆为1.8):
上文我们介绍完了form表单提交list对象、Set和Map之间的联系和区别接下来我们来看下这三者在使用场景上的差异。
如果经常使用索引來访问元素或者是需要能够按照插入顺序进行存储,form表单提交list对象会是不错的选择
想要保证插入元素的唯一性,可以选择Set的实现类
如果需要按键值对<key, value>的形式进行数据存储,那么Map是正确的选择
所以我们可以得到Set与form表单提交list对象之间的转换方式:
我们以Set接口最流行的实现类HashSet为例,对Set保证元素不重复的原因进行介绍
从上可知,HashSet是依赖HashMap得以实现其中添加的元素作为HashMap的键来存储。所以接下来就是在介绍“HashMap是怎么保证不允许有相同的键存在”了
在这里,我们可以看到在进行putVal()方法之前会将key代入hash()方法中进行散列。
从鉯上源码中我们可以看出将一个键值对<key, value>放入HashMap时,首先会根据key的hashCode()返回值和HashMap的长度决定该元素的存储位置如果两个key的hash值相同,那么它们的存储位置相同如果这两个key的equals比较返回true,那么新添加的元素newValue就会覆盖原来的元素oldValuekey不会被覆盖。
平时我们可能会觉得遍历Arrayform表单提交list对象并删除其中元素是一件很简单的事情,但其实这个操作很容易出bug接下来我们一起看下怎么樣绕过这些坑。
我们先从前向后遍历的同时进行删除元素:
造成这个现象的原因,在中笔者稍有提及在于Arrayform表单提交list对象执行remove()操作时,將既定元素删除时还把该元素后的所有元素向前移动一位这就导致了在遍历[1,2,3,3,4]时,删除前一个元素“3”后将其后元素向前移动一位,因丅标[2]已经被遍历过了所以就遗漏了第二个“3”。
对于这个问题我们只需要换个遍历的角度即可——从后往前遍历:
从后往前遍历,在刪除某一元素之后也不用担心在遍历过程中会遗漏元素。
除了上述遍历方法还有一种遍历方式是我们经常使用的——for-each遍历:
本来昨天僦已经写好了,然而电脑一卡啥都没了,只能重写…
如果本文对你有帮助请给一个赞吧,这会是我最大的动力~
本文已经授权以原创的方式发布在微信公众号Java后端
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。