是我记错了,还是 Java 曾几何时提供了一个 Pair 类作为其 API 的一部分?
原文由 Alexx 发布,翻译遵循 CC BY-SA 4.0 许可协议
是我记错了,还是 Java 曾几何时提供了一个 Pair 类作为其 API 的一部分?
原文由 Alexx 发布,翻译遵循 CC BY-SA 4.0 许可协议
Map.Entry
Java 1.6 及更高版本有两个实现 Map.Entry
接口将键与值配对:
例如
Map.Entry < Month, Boolean > pair =
new AbstractMap.SimpleImmutableEntry <>(
Month.AUGUST ,
Boolean.TRUE
)
;
pair.toString(): 八月=真
我在需要存储对(如大小和对象集合)时使用它。
这部分来自我的生产代码:
public Map<L1Risk, Map.Entry<int[], Map<L2Risk, Map.Entry<int[], Map<L3Risk, List<Event>>>>>>
getEventTable(RiskClassifier classifier) {
Map<L1Risk, Map.Entry<int[], Map<L2Risk, Map.Entry<int[], Map<L3Risk, List<Event>>>>>> l1s = new HashMap<>();
Map<L2Risk, Map.Entry<int[], Map<L3Risk, List<Event>>>> l2s = new HashMap<>();
Map<L3Risk, List<Event>> l3s = new HashMap<>();
List<Event> events = new ArrayList<>();
...
map.put(l3s, events);
map.put(l2s, new AbstractMap.SimpleImmutableEntry<>(l3Size, l3s));
map.put(l1s, new AbstractMap.SimpleImmutableEntry<>(l2Size, l2s));
}
代码看起来很复杂,但是您没有使用 Map.Entry ,而是将其限制为对象数组(大小为 2)并丢失了类型检查…
原文由 gavenkoa 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
3 回答2.3k 阅读✓ 已解决
2 回答3.3k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
2 回答1.9k 阅读
标准框架中没有 Pair ,但是非常接近“标准”的 Apache Commons Lang 有一个 Pair 。