Java中的配对类是什么?
Java Pair类以元组的形式存储两个值。
这对于使函数返回两个值很有用。
Java具有从Java 8开始内置的Pair类。
这就是为什么在本课中,我们不仅要看内置配对类,还要学习如何制作自己的配对类。
配对类在使用Tree数据结构时非常有用。
在树上使用递归时,pair类使将值从一个节点传递到另一个节点变得容易。
这些值可以是直到该节点的最小和最大节点值。
这将防止一次又一次地访问某些节点。
Java内置的Pair类
内置对类是JavaFX包的一部分。
但是,此软件包不是标准OpenJDK安装的一部分。
我们可以使用以下Maven依赖项将其添加到我们的项目中。
<dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-base</artifactId> <version>14.0.1</version> </dependency>
让我们开始使用Java中的内置对类。
导入配对类
导入使用:
import javafx.util.Pair;
内置对类使用键和值的表示法来存储对。
<Key, Value>
但是,不要将其与HashMap混淆。
声明一个配对对象
Pair<Integer, String> p = new Pair<>(7,"Hello");
这将创建<Integer,String>类型的对对象。
构造函数将值7和" hello"存储在Pair类中。
访问值
我们可以使用getKey()和getValue()方法从Pair对象访问值。
getKey获取第一个值。
getValue获取第二个值。
System.out.println("the first value is :" + p.getKey()); System.out.println("the first second is :" + p.getValue());
输出
本节的完整代码为:
import javafx.util.Pair; public class Main { public static void main(String[] args) { Pair<Integer, String> p = new Pair<>(7,"Hello"); System.out.println("the first value is :" + p.getKey()); System.out.println("the first second is :" + p.getValue()); } }
创建我们自己的Pair类
创建我们自己的配对类是更好的选择,因为我们可以根据自己的喜好自定义它。
另外,如果您不在项目中使用JavaFX,则有必要完全避免使用JavaFX。
1.定义自定义对类
为了简单起见,我们使用一个存储两个值的对类。
整数和字符串。
使用泛型也是一个好主意。
public class Pair { int first; String second; public Pair(int first, String second) { this.first = first; this.second = second; } }
已经定义了两个变量first和second来分别存储int和String类型的两个值。
构造函数采用两个值并将它们分配给变量。
2.配对活动
要使用刚刚创建的配对类,请定义配对类的对象并调用构造函数。
Pair a = new Pair(1, "one");
这将创建一个配对对象,其中第一个存储一个,第二个存储一个。
要访问这些值:
System.out.println("the first value is :" + a.first); System.out.println("the first second is :" + a.second);
输出
由于pair class是我们定义的,因此我们可以自定义并添加打印功能。
配对类的代码:
public class Pair { int first; String second; public Pair(int first, String second) { this.first = first; this.second = second; } public void print(){ System.out.println("< "+first+", "+second+ " >"); } public static void main(String[] args){ Pair a = new Pair(1,"Hello"); a.print(); } }
输出
包括打印功能在内,这种方式是一种良好的编码习惯,因为现在可以将变量设为私有。
公开变量是不安全的。
将Pair类与函数一起使用
Pair类可用于从函数返回两个值。
为此,该函数的返回类型必须为pair。
public static Pair func (Scanner s){ System.out.println("what is your name"); String name = s.next(); System.out.println("what is your favourite number?"); int num = s.nextInt(); Pair ans = new Pair(num, name); return ans; }
从此函数返回的对象可以在主函数中捕获。
让我们在主体中打印对象。
public static void main(String[] args) { Scanner s = New Scanner(System.in) Pair ans = func(s); ans.print(); }
本节的完整代码如下。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = New Scanner(System.in) Pair ans = func(s); ans.print(); } public static Pair func (Scanner s){ System.out.println("what is your name"); String name = s.next(); System.out.println("what is your favourite number?"); int num = s.nextInt(); Pair ans = new Pair(num, name); return ans; } }