Pair<L,R>Java中有没有很好的理由?这个 C++ 构造的等价物是什么?我宁愿避免重新实现我自己的。
Pair<L,R>
似乎 1.6 提供了类似的东西 ( AbstractMap.SimpleEntry<K,V>),但这看起来很复杂。
AbstractMap.SimpleEntry<K,V>
在上的一个线程中comp.lang.java.help,Hunter Gratzner 给出了一些反对PairJava 中存在构造的论点。主要论点是一个类Pair没有传达关于两个值之间关系的任何语义(你怎么知道“第一”和“第二”的意思?)。
comp.lang.java.help
Pair
一个更好的做法是为每个应用程序编写一个非常简单的类,就像 Mike 提出的那样Pair。Map.Entry是一对在其名称中带有其含义的示例。
Map.Entry
总而言之,在我看来,最好有一个类Position(x,y),一个类Range(begin,end)和一个类,Entry(key,value)而不是一个Pair(first,second)不告诉我它应该做什么的泛型。
Position(x,y)
Range(begin,end)
Entry(key,value)
Pair(first,second)