我在Floodlight控制器上工作。我有一张地图
Map<Pair<Match,DatapathId>, FlowRuleStats>
而我只有DatapathId

这是我的一些代码:

Map<Pair<Match,DatapathId>, FlowRuleStats> getFlowStats();
Map<Pair<Match, DatapathId>, FlowRuleStats> m;
m = switchStatistics.getFlowStats();


如何进行循环并处理m中的所有元素?

最佳答案

该地图以Pair<Match, DatapathId>键输入,显然您没有。您只有DatapathId。这意味着您不能进行基于键的查找。完全没有

您唯一可以做的就是遍历整个地图:

for (var entry : m.entrySet()) {
    if (!entry.getKey().getRight().equals(datapathidYouHave)) continue;
    Pair<Match, DatapathId> md = entry.getKey();
    FlowRuleStats stats = entry.getValue();
    .....
}

10-02 21:38