我想知道为什么 Java 在其标准库中没有元组数据结构实现。例如 C++ 有 a very good implementation这个固定大小的异构值集合。同样在Haskell .在Java中我只知道javatuples以及 Functional Java 中的一些支持通过 Product
(P1 - P8
) 类型的库。我想知道为什么 tuple
或至少 pair
根本不在标准库中?甚至 Android SDK 开发人员也添加了他们的 own implementation 2 元组(对)。
最佳答案
“Java 方式”是定义特定用途的类,而不是这些轻量级的半类类型。如果您考虑一下,元组实际上只是一个简化的结构; Java 人员希望您继续创建结构。
这种观点正在发生一些变化,尤其是在 Java 8 及其 lambda 中(这给 JDK 施加了压力,要求它提供通用的 Function
类型的接口(interface),而不是像 这样的特定于用例的接口(interface)FooCallback
).但对于许多 Java 开发人员来说,这仍然是一种相当强烈的心态,并且有一定的道理。 Java 是一种非常静态类型的语言;元组介于静态类型和动态类型之间,因为类型系统中没有任何东西可以阻止您认为表示客户 ID 和名称的 (int, String)
实际上是一个 (int, String)
表示订单 ID 及其描述。
参见,例如,this discussion ("Tuples for n >= 2") 关于 Guava 项目中的问题。当然,这不是官方的;但它很好地体现了 Java 的思维方式。
关于java - Java 中的元组(异构元素的不可修改有序列表)支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977236/