Details
-
Type:
New Feature
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Won't Fix
-
Affects Version/s: 1.7-beta-1
-
Fix Version/s: None
-
Component/s: groovy-jdk
-
Labels:None
-
Testcase included:yes
-
Number of attachments :
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]
Activity
Paul King
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Description |
Enhancements to HashMap ------------------------------------- - rejectKeys(list of keys) - rejectValues(list of values) - includeKeys(list of keys) - includeValues(list of values) --- 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 --------------------------- [b:2, d:4] [a:1, c:3] [c:3, d:4] [a:1, b:2] |
Proposed Enhancements to HashMap: * rejectKeys(list of keys) * rejectValues(list of values) * includeKeys(list of keys) * includeValues(list of values) Some examples: {code} 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 {code} with output: {noformat} [b:2, d:4] [a:1, c:3] [c:3, d:4] [a:1, b:2] {noformat} |
blackdrag blackdrag
made changes -
| Status | Open [ 1 ] | Closed [ 6 ] |
| Assignee | blackdrag blackdrag [ blackdrag ] | |
| Fix Version/s | 1.7.x [ 15538 ] | |
| Resolution | Won't Fix [ 2 ] |