uniq (';' LIST )*
Macro
Summary
The uniq macro combines one or more lists and removes all duplicate elements, preserving insertion order (first occurrence is kept).
Syntax
${uniq;<list>[;<list>...]}
Parameters
list- One or more semicolon-separated lists to process
Behavior
- Combines all provided lists
- Removes duplicate elements
- Preserves insertion order (first occurrence kept)
- Returns comma-separated list of unique elements
Examples
Remove duplicates from single list:
${uniq;1,2,3,1,2,4}
# Returns: "1,2,3,4"
Remove duplicates from multiple lists:
${uniq;red,green,blue;red,yellow}
# Returns: "red,green,blue,yellow"
Clean package list:
${uniq;${exports};${imports}}
# Returns unique packages
Deduplicate configuration:
unique.values=${uniq;${list1};${list2};${list3}}
Use Cases
- Removing duplicate entries from lists
- Merging lists without duplicates
- Creating unique sets from multiple sources
- Cleaning up configuration values
- Deduplicating package or class lists
- Set operations on lists
Notes
- Preserves insertion order (LinkedHashSet behavior)
- First occurrence of duplicate is kept
- Case-sensitive comparison
- Empty elements are preserved if present
- See also:
${sort}to also sort the result - See also:
${removeall}and${retainall}for set operations
See test cases in MacroTestsForDocsExamples.java
