我有一张存储物体地图的地图:
Map<String, ActiveConnections> cache = new LinkedHashMap<>();
public class ActiveConnections
{
private int one;
private int two;
private int three;
public ActiveConnections(int one, int two, int three)
{
this.one = one;
this.two = two;
this.three = three;
}
public int getOne()
{
return one;
}
public void setOne(int one)
{
this.one = one;
}
public int getTwo()
{
return two;
}
public void setTwo(int two)
{
this.two = two;
}
public int getThree()
{
return three;
}
public void setThree(int three)
{
this.three = three;
}
}
如何创建一个循环,在Map
个对象中搜索值。例如,我想获取所有值two = 4
。
答案 0 :(得分:2)
尝试此操作,它会迭代地图中的所有键/值对,在two == 4
中查找值为ActiveConnections
的值。找到后,您可以决定如何处理密钥或entry
中的值,这取决于您。
for (Map.Entry<String, ActiveConnections> entry : cache.entrySet()) {
if (entry.getValue().getTwo() == 4) {
// we found one, do something with the entry
}
}
答案 1 :(得分:1)
就像我在上面的评论中发布的那样 - 使用Map来迭代这些项目胜过使用地图的目的,但是如果还有其他限制没有带到这里,你必须使用地图,我会实现一个新的课程ActiveConnections
中的搜索方法:
public int search(int lookFor){
int res = -1;//not found
if(lookFor == one){
res = one;
}
else if(lookFor == two){
res = two;
}
else if(lookFor == three){
res = three;
}
return res;
}
然后,对于每个项目(活动连接) - 只需调用搜索并验证结果不是-1
(或您喜欢的其他“错误”代码)。
答案 2 :(得分:0)
您可以遍历值......
for (ActiveConnections value : cache.values()) {
if (value.getTwo() == 4) {
//logic
}
}