freemarker list集合去重,实现hashset

Freemarker去重及Java代码处理
博客指出Freemarker未提供去重方法,虽有定义hash方法但不能动态构建。通常在Java代码中用set集合、map对象处理去重,不过也给出了在Freemarker文件中实现去重的代码示例。

在freemarker中没有提供去重的方法,虽然有提供定义hash的方法,如:<#assign myHash = { "name": "mouse", "price": 50 }>,但是不能够动态构建hash。

通常我们会在java代码中进行处理,比如使用set集合、map对象处理。

但是如果一定要在freemarker文件中实现还是可以做到的,如下代码所示:

introspectedTable.allColumns为java传递过来的ArrayList集合。下面进行去重处理


<#list introspectedTable.allColumns as allColumns>
        <#list introspectedTable.allColumns as allColumns2>
                <#if allColumns.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters ==allColumns2.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters>
                    <#if allColumns_index==allColumns2_index>
                        import ${allColumns.fullyQualifiedJavaType.fullyQualifiedNameWithoutTypeParameters};
                    <#else>
                        <#break >
                    </#if>
                </#if>
        </#list>
</#list>

 




执行结果为:

import java.lang.Integer;
import java.lang.String;



最后显示的就是去重之后的内容,原理:使用值和_index两个一起来实现的。

转载于:https://www.cnblogs.com/wulm/p/11067426.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值