当前位置: 首页 > 面试题库 >

Java中的C ++ Pair

闾丘文昌
2023-03-14
问题内容

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

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 是C,C ++,Java或C#中的main()(或Main()),用户定义的函数还是内置函数? 问题答案: 这是用户定义的函数,对于程序执行来说是必需的。当您以编译语言运行程序时,该功能即为执行的功能。例如,在Java中,如果类中具有签名功能,则可以执行该类,因为JVM将执行该方法的内容。 Java范例: … … 结果将“ Hello World”打印到控制台。

  • 问题内容: 我有以下Java代码: 得出666和999。现在,我尝试在c#中设置类似的代码,但是似乎无法完成相同的工作。如果是这样,用c#编程时通常如何达到类似的效果? 问题答案: 您需要使内部类将外部类的实例作为构造函数参数。(这是Java编译器实现内部类的方式)

  • 问题内容: 哪个更正确?Java的结果为12或C =13。或者,如果不是正确性,请详细说明。 问题答案: 没有比这更正确的了。它实际上是未定义的,称为序列点错误。 http://en.wikipedia.org/wiki/Sequence_point

  • 问题内容: C#中与DateTime.Ticks等效的Java语言是什么? Java中与上述代码等效的东西是什么? 问题答案: 好吧,java.util.Date / Calendar的精度只有毫秒以下: 那是最接近的有效等效值。如果您需要在.NET ticks值和/ 之间进行转换,则基本上需要执行缩放(刻度到millis)和偏移(从1AD年1月1日到1970年1月1日)。 Java的内置日期和时

  • 问题内容: 我想将Java中的类转换为C#,大部分更改已经完成,但是我不确定这部分。我想转换以下代码行: 我已经试过了: 但是它不能正常工作,因为GetBytes()期望翻倍。我不确定将其转换为双精度是否可以解决问题,所以我想在这里询问。 问题答案: 根据您的编码,您可以执行以下操作: 有关参考,请参见http://msdn.microsoft.com/zh- cn/library/ds4kkd5

  • 问题内容: 我有一个带有以下标头的Base64编码的对象: 解码对象的最佳方法是什么?我需要去除第一行吗?另外,如果将其转换为字节数组(byte []),如何解压缩它? 谢谢! 我想我起初很miss。通过说标题是 我的意思是这是文件的第一行。因此,为了使用Java或C#库解码文件,是否需要删除这一行? 如果是这样,剥离第一行的最简单方法是什么? 问题答案: 我能够使用以下代码将.xfdl文档转换为