JavaTuples中的KeyValue类

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
喜欢就支持一下吧
点赞14 分享