Java Eclipse集合映射上的简单循环迭代(例如:InObjectHashMap)
有没有一种方法可以对映射上的每个循环使用简单Java 我正在寻找类似的东西(但对于Eclipse集合映射):Java Eclipse集合映射上的简单循环迭代(例如:InObjectHashMap),java,loops,foreach,iterator,eclipse-collections,Java,Loops,Foreach,Iterator,Eclipse Collections,有没有一种方法可以对映射上的每个循环使用简单Java 我正在寻找类似的东西(但对于Eclipse集合映射): for(Map.Entry:Map.entrySet()){ } 。。。但是我在Eclipse集合地图中找不到类似的东西 当然,我知道这种类型的Eclipse集合迭代: import org.eclipse.collections.impl.map.mutable.primitive.IntObjectHashMap; public class Test { public s
for(Map.Entry:Map.entrySet()){
}
。。。但是我在Eclipse集合地图中找不到类似的东西
当然,我知道这种类型的Eclipse集合迭代:
import org.eclipse.collections.impl.map.mutable.primitive.IntObjectHashMap;
public class Test {
public static void main(String[] args) {
IntObjectHashMap<String> map = new IntObjectHashMap<>();
map.put(1, "one");
map.put(2, "two");
int i = 0;
map.forEachKeyValue((int key, String val) -> {
i++; // Compilation error.
System.out.println("key: " + key + ", val: " + val);
});
}
}
import org.eclipse.collections.impl.map.mutable.primitive.IntObjectHashMap;
公开课考试{
公共静态void main(字符串[]args){
InObjectHashMap=新建InObjectHashMap();
地图放置(1,“一”);
图.put(2,“2”);
int i=0;
map.forEachKeyValue((int键,String val)->{
i++;//编译错误。
System.out.println(“key:+key+”,val:+val);
});
}
}
。。。但是这种构造有一些缺点,例如,我无法轻松访问周围的局部变量(如上面的示例所示,由于对局部变量I
的访问不正确,该示例将无法编译)
有没有关于如何编写简单的Eclipse集合循环图的想法?Hulk和Basil在评论中的建议很好。我将为您的代码提供一个测试,以供将来参考
@Test
public void keyValuesView()
{
IntObjectHashMap<String> map = new IntObjectHashMap<>();
map.put(1, "one");
map.put(2, "two");
int i = 0;
for (IntObjectPair<String> pair : map.keyValuesView())
{
i++;
System.out.println("key: " + pair.getOne() + ", val: " + pair.getTwo());
}
Assert.assertEquals(2, i);
}
胡克和巴兹尔在评论中的建议很好。我将为您的代码提供一个测试,以供将来参考
@Test
public void keyValuesView()
{
IntObjectHashMap<String> map = new IntObjectHashMap<>();
map.put(1, "one");
map.put(2, "two");
int i = 0;
for (IntObjectPair<String> pair : map.keyValuesView())
{
i++;
System.out.println("key: " + pair.getOne() + ", val: " + pair.getTwo());
}
Assert.assertEquals(2, i);
}
我还没有使用eclipse集合,但从文档中可以看出,它返回了映射中条目的Iterable(在这种情况下,作为
IntObjectPair
-实例)。应该可以在增强的for循环中使用它。它看起来非常有前途!非常感谢,Hulk.Doc:我还没有使用eclipse集合,但是从文档中可以看出,它返回了映射中条目的Iterable(在这种情况下,作为IntObjectPair
-instances)。应该可以在增强的for循环中使用它。它看起来非常有前途!非常感谢你,绿巨人。医生:
@Test
public void forEachKeyValueWithCounter()
{
IntObjectHashMap<String> map = new IntObjectHashMap<>();
map.put(1, "one");
map.put(2, "two");
Counter counter = new Counter();
map.forEachKeyValue((int key, String val) -> {
counter.increment();
System.out.println("key: " + key + ", val: " + val);
});
Assert.assertEquals(2, counter.getCount());
}