java key value pair_Java Pair class - key value pair data structure in Java - 入门小站-rumenz.com...

通过使用Pair类(例如javafx.util.Pair , ImmutablePair , MmutablePair (公共语言)和io.vavr.Tuple2类)来学习如何在Java中使用键值对。

1. Why we need pairs?

一对提供了一种将简单键值关联的便捷方法。 在Java中,地图用于存储键值对。 地图存储成对的集合并作为整体进行操作。

有时,我们需要根据键值对本身存在的要求进行工作。 例如一对需要在方法中作为参数传递

方法需要以一对形式返回两个值

2. javafx.util.Pair class

Pair类提供以下方法。boolean equals​(Object o) -测试此对与另一个对象是否相等。

K getKey() –获取该对的密钥。

V getValue() –获取该对的值。

int hashCode() –为此对生成哈希码。

String toString() –此对的字符串表示形式。

让我们来看一个创建和使用pair的Java程序 。Pair pair = new Pair<>(100, "howtodoinjava.com");

Integer key = pair.getKey();//100

String value = pair.getValue();//howtodoinjava.com

pair.equals(new Pair<>(100, "howtodoinjava.com"));//true - same name and value

pair.equals(new Pair<>(222, "howtodoinjava.com"));//false- different name

pair.equals(new Pair<>(100, "example.com"));//false- different value

3. Pair, ImmutablePair and MutablePair – Apache commons lang

Pair类是由两个元素组成的对。

Pair将元素称为“左”和“右”。

Pair还实现了Map.Entry接口,其中键为“ left”,值为“ right”。

ImmutablePair是Pair上的immutable表示形式。 如果将易变的对象存储在该对中,那么该对本身将有效地变为易变的。 该类也不是final ,因此子类可能会添加不良行为。

如果存储的对象是线程thread-safe则ImmutablePair是thread-safe安全的。ImmutablePair pair = ImmutablePair.of(100, "howtodoinjava.com");

Integer key = pair.getKey();//100

String value = pair.getValue();//howtodoinjava.com

//Integer key = pair.getLeft();//100

//String value = pair.getRight();//howtodoinjava.com

pair.equals(ImmutablePair.of(100, "howtodoinjava.com"));//true - same name and value

pair.equals(ImmutablePair.of(222, "howtodoinjava.com"));//false- different name

pair.equals(ImmutablePair.of(100, "example.com"));//false- different value

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

org.apache.commons

commons-lang3

3.8.1

4. io.vavr.Tuple2 – Vavr

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

Tuple2提供了许多有用的方法来处理存储在其中的数据。 例如T1 _1() –此元组的第一个元素的吸气剂。

T2 _2() –此元组的第二个元素的Getter。

Tuple2 update1(T1 value) –将此元组的第一个元素设置为给定值。

元组2 Tuple2 update2(T2 value) –将此元组的第二个元素设置为给定值。

Map.Entry toEntry() –将元组转换为java.util.Map.Entry元组。

Tuple2 swap() –交换此Tuple的元素。

Tuple2 map(BiFunction mapper) –使用映射器功能映射此元组的组件。

int compareTo(Tuple2 that) –比较两个Tuple2实例。Tuple2 pair = new Tuple2<>(100, "howtodoinjava.com");

Integer key = pair._1();//100

String value = pair._2();//howtodoinjava.com

pair.equals(new Tuple2<>(100, "howtodoinjava.com"));//true - same name and value

pair.equals(new Tuple2<>(222, "howtodoinjava.com"));//false- different name

pair.equals(new Tuple2<>(100, "example.com"));//false- different value

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

io.vavr

vavr

0.10.2

请把有关在Java中使用名称/值对的问题交给我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值