A. 键值 是来自 Java元组 只处理两个元素的库——一个键和一个值。因为这个KeyValue是一个泛型类,所以它可以包含任何类型的值。
null
由于KeyValue是一个元组,因此它还具有JavaTuple的所有特征:
- 他们是 类型安全
- 他们是 不变的
- 他们是 可迭代的
- 他们是 可序列化
- 他们是 可比较的 (实现可比较的
) - 他们实施 等于 和 hashCode()
- 他们还实施 toString()
类别声明
public final class KeyValue<A, B> extends Tuple implements IValueKey<A>, IValueValue<B>
类层次结构
Object ↳ org.javatuples.Tuple ↳ org.javatuples.KeyValue<A, B>
创建键值元组
- 来自构造函数 : 语法 :
KeyValue<A, B> kv = new KeyValue<A, B>(value1, value2);
实例 :
JAVA
// Below is a Java program to create // a KeyValue tuple from Constructor import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = new KeyValue<Integer, String>(Integer.valueOf( 1 ), "GeeksforGeeks" ); System.out.println(kv); } } |
输出:
[1, GeeksforGeeks]
- 使用with()方法 :with()方法是JavaTuples库提供的一个函数,用于用这些值实例化对象。 语法 :
KeyValue<type1, type2> kv = KeyValue.with(value1, value2);
实例 :
JAVA
// Below is a Java program to create // a KeyValue tuple from with() method import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); System.out.println(kv); } } |
输出:
[1, GeeksforGeeks]
- 来自其他系列 :fromCollection()方法用于从集合创建元组,fromArray()方法用于从数组创建元组。集合/数组的类型必须与元组的类型相同,集合/数组中的值数量必须与元组类匹配。 语法 :
KeyValue<type1, type2> kv = KeyValue.fromCollection(collectionWith_2_value);KeyValue<type1, type2> kv = KeyValue.fromArray(arrayWith_2_value);
实例 :
JAVA
// Below is a Java program to create // a KeyValue tuple from Collection import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { // Creating KeyValue from List List<String> list = new ArrayList<String>(); list.add( "GeeksforGeeks" ); list.add( "A computer portal" ); KeyValue<String, String> kv = KeyValue.fromCollection(list); // Creating KeyValue from Array String[] arr = { "GeeksforGeeks" , "A computer portal" }; KeyValue<String, String> otherKeyValue = KeyValue.fromArray(arr); System.out.println(kv); System.out.println(otherKeyValue); } } |
输出:
[GeeksforGeeks, A computer portal][GeeksforGeeks, A computer portal]
获得价值
getValue()和getKey()方法可用于分别获取KeyValue元组中的值和键。
- getKey() : 语法 :
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);type2 val1 = kv.getKey();
实例 :
JAVA
// Below is a Java program to get // a KeyValue value import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); System.out.println(kv.getKey()); } } |
输出:
1
- getValue() : 语法 :
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);type2 val1 = kv.getValue();
实例 :
JAVA
// Below is a Java program to get // a KeyValue value import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); System.out.println(kv.getValue()); } } |
输出:
GeeksforGeeks
设置KeyValue值
由于元组是不可变的,这意味着不可能修改索引中的值。因此,JavaTuples提供了setKey(value)和setValue(value),它们根据所使用的方法创建一个带有新值的KeyValue副本,并返回一个新的KeyValue对象。
- setKey() : 语法 :
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);KeyValue<type1, type2> kvNew = kv.setKey(valueNew);
实例 :
JAVA
// Below is a Java program to set // a KeyValue Key import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); KeyValue<Integer, String> otherKeyValue = kv.setKey( 10 ); System.out.println(otherKeyValue); } } |
输出:
[10, GeeksforGeeks]
- setValue() : 语法 :
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);KeyValue<type1, type2> kvNew = kv.setValue(valueNew);
实例 :
JAVA
// Below is a Java program to set // a KeyValue Value import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); KeyValue<Integer, String> otherKeyValue = kv.setValue( "A computer science portal" ); System.out.println(otherKeyValue); } } |
输出:
[1, A computer science portal]
在键值中搜索
可以使用预定义的方法在元组中搜索元素 包含() 。它返回一个布尔值,无论该值是否存在。
语法:
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);boolean res = kv.contains(value2);
实例 :
JAVA
// Below is a Java program to search // a value import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); // Using contains for True result boolean exist = kv.contains( "GeeksforGeeks" ); // Using contains for False result boolean exist1 = kv.contains( 4 ); System.out.println(exist); System.out.println(exist1); } } |
输出:
truefalse
遍历KeyValue
因为KeyValue实现了 Iterable 界面这意味着它们可以像集合或数组一样进行迭代。
语法:
KeyValue<type1, type2> kv = new KeyValue<type1, type2>(value1, value2);for (Object item : kv) { ...}
实例 :
JAVA
// Below is a Java program to iterate // a KeyValue import java.util.*; import org.javatuples.KeyValue; class GfG { public static void main(String[] args) { KeyValue<Integer, String> kv = KeyValue.with(Integer.valueOf( 1 ), "GeeksforGeeks" ); for (Object item : kv) System.out.println(item); } } |
输出:
1GeeksforGeeks
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END