一尘不染

Java 中的 C++ Pair<L,R> 等价物是什么?

javascript

Pair<L,R>Java中有没有很好的理由?这个 C++ 构造的等价物是什么?我宁愿避免重新实现我自己的。

似乎1.6提供了类似的东西 ( AbstractMap.SimpleEntry<K,V>),但这看起来很复杂。


阅读 108

收藏
2022-06-22

共1个答案

一尘不染

上的一个线程中comp.lang.java.help,Hunter Gratzner 给出了一些反对PairJava 中存在构造的论点。主要论点是一个类Pair没有传达任何关于两个值之间关系的语义(你怎么知道“第一”和“第二”的意思?)。

一个更好的做法是为每个应用程序编写一个非常简单的类,就像 Mike 提议的那样PairMap.Entry是一对在其名称中带有其含义的示例。

总而言之,在我看来,最好有一个类Position(x,y),一个类Range(begin,end)和一个类,Entry(key,value)而不是一个Pair(first,second)不告诉我它应该做什么的泛型。

2022-06-22