Vavr中的 io.vavr.Tuple2

另一个用于存储键值对的有用类是 Tuple2.

Tuple2提供了许多有用的方法来处理存储其中的数据。
例如

  • T1 _1()- 此元组的第一个元素的 Getter。
  • T2 _2()- 此元组的第二个元素的 Getter。
  • Tuple2 update1(T1 value)- 将此元组的第一个元素设置为给定值。
  • Tuple2 update2(T2 value)- 将此元组的第二个元素设置为给定值。
  • Map.Entry toEntry()- 将元组转换为 java.util.Map.Entry元组。
  • Tuple2 swap()- 交换这个元组的元素。
  • Tuple2 map(BiFunction mapper)- 使用映射器函数映射这个元组的组件。
  • int compareTo(Tuple2 that)- 比较两个 Tuple2 实例。
Tuple2<Integer, String> pair = new Tuple2<>(100, "onitroad.com");

Integer key = pair._1();			//100
String value = pair._2();			//onitroad.com
pair.equals(new Tuple2<>(100, "onitroad.com"));	//true - same name and value
pair.equals(new Tuple2<>(222, "onitroad.com"));	//false	- different name
pair.equals(new Tuple2<>(100, "example.com"));		//false	- different value

不要忘记将库导入应用程序类路径。

<dependency>
	<groupId>io.vavr</groupId>
	<artifactId>vavr</artifactId>
	<version>0.10.2</version>
</dependency>

为什么需要 Pair?

Pair 提供了一种将简单键与值相关联的便捷方式。

在 Java 中,映射用于存储键值对。
地图存储一组对并将它们作为一个整体进行操作。

有时,我们需要处理需要单独存在键值对的需求。
例如:

  • 一对需要在方法中作为参数传递
  • 方法需要以对的形式返回两个值
之路 on it Road.com

Apache commons lan 中的 Pair、ImmutablePair 和 MutablePair

Commons lang 库有一个有用的类,可以成对使用,例如:org.apache.commons.lang3.tuple.Pair。

它有两个子类,它们也可以用于相同的目的,例如:ImmutablePair 和 MutablePair。

  • Pair类是由两个元素组成的对。
  • Pair将元素称为“左”和“右”。
  • Pair还实现了 Map.Entry接口,其中键为 'left',值为 'right'。
  • ImmutablePairPair上的不可变表示。

如果可变对象存储在对中,则对本身有效地变为可变对象。该类也不是 final,因此子类可能会添加不良行为。

  • 如果存储的对象是线程安全的,那么ImmutablePair就是线程安全的。
ImmutablePair<Integer, String> pair = ImmutablePair.of(100, "onitroad.com");

Integer key = pair.getKey();			//100
String value = pair.getValue();			//onitroad.com
//Integer key = pair.getLeft();			//100
//String value = pair.getRight();		//onitroad.com
pair.equals(ImmutablePair.of(100, "onitroad.com"));	//true - same name and value
pair.equals(ImmutablePair.of(222, "onitroad.com"));	//false	- different name
pair.equals(ImmutablePair.of(100, "example.com"));		//false	- different value

不要忘记将库导入应用程序类路径。

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-lang3</artifactId>
	<version>3.8.1</version>
</dependency>

javafx.util.Pair 类

Java 核心 API 将 javafx.util.Pair作为最接近的匹配,其目的是将两个值作为名称-值对。

Pair类提供以下方法。

  • boolean equals (Object o)- 测试这个 Pair 与另一个 Object 的相等性。
  • K getKey()- 获取该对的密钥。
  • V getValue()- 获取该对的值。
  • int hashCode()- 为这个 Pair 生成一个哈希码。
  • String toString()- 此 Pair 的字符串表示。

在Java中创建和使用 pair示例

Pair<Integer, String> pair = new Pair<>(100, "onitroad.com");

Integer key = pair.getKey();		//100
String value = pair.getValue();		//onitroad.com
pair.equals(new Pair<>(100, "onitroad.com"));	//true - same name and value
pair.equals(new Pair<>(222, "onitroad.com"));	//false	- different name
pair.equals(new Pair<>(100, "example.com"));		//false	- different value
Java Pair 类

在 Java 中 使用 Pair 类(例如 javafx.util.PairImmutablePairMmutablePair(通用语言)和 io.vavr.Tuple2类)操作键值对,。

日期:2020-09-17 00:09:43 来源:oir作者:oir