1. ホーム
  2. ジャワ

フリーマーカーリスト収集の重複排除、ハッシュセットの実装

2022-03-18 13:31:48

freemarkerでは、ハッシュを定義する方法はありますが、重み付けを解除する方法はありません、例えば、 <#assign myHash = { "name": "mouse", "price": 50 }>のように、動的にハッシュを構築することはできません。

通常、Javaのコードでは、セットコレクションやマップオブジェクトなどを使ってこれを処理します。

しかし、どうしても必要な場合は、次のコードのように、freemarker ファイルで行うこともできます。

introspectedTable.allColumns is the ArrayList collection passed in by java. Here is the de-duplication process













<#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>













The result of the implementation is.

java.lang.Integerをインポートします。



java.lang.Stringをインポートします。









The last thing displayed is the content after the de-duplication, principle: using both value and _index together.