我想在Groovy中更新地图中的值来填充某些条件.这是我的代码:
def m = [:]
m['a'] = 1
m['b'] = 2
m['d'] = 3
m.findAll { it.value > 1}.each {
it.value = 4
}
println m
Run Code Online (Sandbox Code Playgroud)
但结果如下:
[a:1, b:2, d:3]
Run Code Online (Sandbox Code Playgroud)
有没有办法同时使用findAll和each?或者我必须使用
m.each {if (it.value>1) it.value=4}
Run Code Online (Sandbox Code Playgroud) 我想快速从Java Set中获取与现有对象相等的对象.有没有比迭代所有元素的更快的方法?
这是我的代码:
class A {
int a,b,c,d;
public A(int a, int b, int c, int d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + getOuterType().hashCode();
result = prime * result + a;
result = prime * result + b;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return …Run Code Online (Sandbox Code Playgroud) 我知道这个问题可能有点愚蠢,但我只是想澄清疑问.在浏览Collection的Java教程(http://docs.oracle.com/javase/tutorial/collections/index.html)时,我没有找到有关Vector和Hashtable的任何相关信息.两者都属于Collection框架,因为Vector是List的实现,而Hashtable是Map的实现.如果是这样那么为什么它不在Sun教程中?我在哪里可以找到Sun的Collection教程,其中包含有关Vector和Hashtable的优秀文档以及有关存储在List,Set和Map中的元素的深入知识?