java中Pair简介说明
下文笔者讲述Java中Pair的简介说明,如下所示
Pair简介
Pair的意思是对 Pair是一种数据结构 用于同时返回两个值
javafx.util.Pair类实现
import javafx.util.Pair; Pair<Integer, String> pair = new Pair<>(1, "Java265"); Integer key = pair.getKey(); String value = pair.getValue();
java.util.AbstractMap类
AbstractMap.SimpleEntry<Integer, String> entry = new AbstractMap.SimpleEntry<>(1, "Java265"); Integer key = entry.getKey(); String value = entry.getValue(); entry.setValue("two"); AbstractMap.SimpleImmutableEntry<Integer, String> entry = new AbstractMap.SimpleImmutableEntry<>(1, "Java265"); Integer key = entry.getKey(); String value = entry.getValue(); 注意事项: 调用SimpleImmutableEntry类的setValue方法会抛出UnsupportedOperati***xception异常
org.apache.commons.lang3库
commons.lang3库中 包含ImmutablePair和MutablePair两个类
ImmutablePair<Integer, String> pair = new ImmutablePair<>(2, "Two"); Integer key = pair.getKey(); String value = pair.getValue(); Pair<Integer, String> pair2 = new MutablePair<>(3, "Three"); Integer key2 = pair2.getKey(); String value2 = pair2.getValue(); pair2.setValue("New Three");
使用静态方法创建Pair
MutablePair<Boolean, String> of2 = MutablePair.of(false, "11111111"); System.out.println(of2.getKey()+","+of2.getValue()); of2.setValue("22222"); System.out.println(of2.getKey()+","+of2.getValue()); ImmutablePair<Boolean, String> of3 = ImmutablePair.of(false, "111111111"); System.out.println(of3.getKey()+","+of3.getValue()); of3.setValue("22222");//抛异常 System.out.println(of3.getKey()+","+of3.getValue()); Pair<Boolean, String> of = Pair.of(false, "111111111"); System.out.println(of.getKey()+","+of.getValue()); of.setValue("22222");//抛异常 System.out.println(of.getKey()+","+of.getValue()); 注意事项: 无论是MutablePair还是ImmutablePair 都没有setKey方法
Vavr库实现Pairs
vavr库是函数式编程的一个库 提供Tuple2类例
Tuple2<Integer, String> pair = new Tuple2<>(4, "Four"); Integer key = pair._1(); String value = pair._2(); 注:这种方式创建后无法再进行修改,可以调用update1和update2方法,但是会返回一个新的Tuple2对象。 Tuple2<Integer, String> pair = new Tuple2<>(4, "Four"); Integer key = pair._1(); String value = pair._2(); System.out.println(key+","+value);//4,Four Tuple2<Integer, String> update1 = pair.update1(5); System.out.println(update1._1+","+update1._2);//5,Four Tuple2<Integer, String> update2 = pair.update2("Five"); System.out.println(update2._1+","+update2._2);//4,Five
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。