技术标签:
【中文标题】Java中的三元组是啥?【英文标题】:What is a Triple in Java?Java中的三元组是什么? 【发布时间】:2018-10-17 20:09:51 【问题描述】:我遇到过如下代码:
public List> methodName() // Do something
Triple
是什么,应该怎么用?
【问题讨论】:
它从哪个包导入Triple
?只需找到相关的 Javadoc。 【参考方案1】: Triple 在您想一次保存 3 个值并且可以传递不同的数据类型时很有用。如果您只是想学习,那么下面是它的用法示例,但如果您想在代码中使用,那么我建议您改用Objects
。
public class Triple private final T first; private final U second; private final V third; public Triple(T first, U second, V third) this.first = first; this.second = second; this.third = third; public T getFirst() return first; public U getSecond() return second; public V getThird() return third;
这就是你可以实例化它的方式:
List> = new ArrayList<>();
编辑
如cmets中所述,请注意它属于org.apache.commons.lang3.tuple
,它不是Java中的内置类。
【讨论】:
这比尝试使用类更有效吗? @cody.tv.weber 我不认为它更有效。我认为这只是 Apache Commons 提供的一个方便的类 那么这本质上会类似于 Golang 的多值返回吗?好的,我想这可能很方便。【参考方案2】:认为“元组”有 3 个值!
许多编程语言都提供了有效处理“固定”长度但每个条目类型不同的列表的方法。
Triple 类是为您提供类似功能的 Java 方式。像一对,但多了一个条目。
在其核心,固定长度元组允许您基于某种“排序”“松散耦合”不同类型的多个值。
【讨论】:
【参考方案3】:当您需要一个数据结构来处理三个实体的列表时,您可以使用非常方便的 Triple。我写一个例子:
import java.util.ArrayList;import java.util.List;import org.apache.commons.lang3.tuple.Triple;public class test2 public static void main(String[] args) List> tripleList = new ArrayList<>(); tripleList.add(Triple.of(100, "Japan", "Tokyo")); tripleList.add(Triple.of(200, "Italy", "Rome")); tripleList.add(Triple.of(300, "France", "Paris")); for(Triple triple : tripleList) System.out.println("triple left ="+ triple.getLeft()); System.out.println("triple right= "+ triple.getRight() ); System.out.println("triple middle = "+ triple.getMiddle() );
输出如下图所示:
【讨论】:
以上是关于Java中的三元组是啥?的主要内容,如果未能解决你的问题,请参考以下文章