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

2022-08-31 04:09:10

Java中没有一个很好的理由吗?什么相当于这个C++结构?我宁愿避免重新实现我自己的。Pair<L,R>

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


答案 1

comp.lang.java.help上的一个帖子中,Hunter Gratzner给出了一些反对Java中存在构造的论据。主要论点是,一个类不传达任何关于两个值之间关系的语义(你怎么知道“first”和“second”是什么意思?PairPair

一个更好的做法是编写一个非常简单的类,就像Mike提议的那样,用于你本来要对该类制作的每个应用程序。 是一对在其名称中具有其含义的示例。PairMap.Entry

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


答案 2

这就是Java。您必须使用描述性的类和字段名称创建自己的定制 Pair 类,而不必介意您将通过编写 hashCode()/equals() 或一次又一次地实现可比来重新发明轮子。


推荐