一尘不染

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

java

是否有充分的理由说明为什么Pair<L,R>Java中没有?这个C ++结构相当于什么?我宁愿避免重新实现自己的。

似乎1.6提供了类似的功能(AbstractMap.SimpleEntry<K,V>),但这看起来有些令人费解。


阅读 612

收藏
2020-02-27

共1个答案

一尘不染

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

更好的做法是为你将要为该类编写的每个应用程序编写一个非常简单的类(如Mike提出的那样)Pair。Map.Entry是一对在其名称中带有其含义的示例。

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

2020-02-27