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'。ImmutablePair
是Pair
上的不可变表示。
如果可变对象存储在对中,则对本身有效地变为可变对象。该类也不是 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 类(例如 javafx.util.Pair
、ImmutablePair
、MmutablePair
(通用语言)和 io.vavr.Tuple2
类)操作键值对,。
日期:2020-09-17 00:09:43 来源:oir作者:oir