Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Won't Fix
-
1.7-beta-1
-
None
-
None
Description
Proposed Enhancements to HashMap:
- rejectKeys(list of keys)
- rejectValues(list of values)
- includeKeys(list of keys)
- includeValues(list of values)
Some examples:
HashMap.metaClass.rejectKeys = {ArrayList keys -> delegate.findAll{ k,v -> !keys.contains(k)} } HashMap.metaClass.rejectValues = {ArrayList values -> delegate.findAll{ k,v -> !values.contains(v)} } HashMap.metaClass.includeKeys = {ArrayList keys -> delegate.findAll{ k,v -> keys.contains(k)} } HashMap.metaClass.includeValues = {ArrayList values -> delegate.findAll{ k,v -> values.contains(v)} } map = [a:1, b:2, c:3, d:4] keys = ['a', 'c'] values = [1, 2] def not_rejected = map.rejectKeys(keys) def included = map.includeKeys(keys) def not_rejected_v = map.rejectValues(values) def included_v = map.includeValues(values) println not_rejected println included println not_rejected_v println included_v
with output:
[b:2, d:4] [a:1, c:3] [c:3, d:4] [a:1, b:2]