はじめに
ペアは、キー用のフィールドと値用のフィールドの2つから構成される、ペアになったデータを格納する方法です。Javaでは、ペアはメソッドから複数の値を返すための素晴らしい方法です。Javaでペアを使用する方法はたくさんあります。この実験では、コード例を用いてJavaでペアをどのように使用するかについて段階的なガイダンスを提供します。
ペアは、キー用のフィールドと値用のフィールドの2つから構成される、ペアになったデータを格納する方法です。Javaでは、ペアはメソッドから複数の値を返すための素晴らしい方法です。Javaでペアを使用する方法はたくさんあります。この実験では、コード例を用いてJavaでペアをどのように使用するかについて段階的なガイダンスを提供します。
次のコマンドを使用して新しいJavaクラスを作成します。
cd ~/project && touch PairsInJava.java
JavaFXには、ペアを扱うために使用できる組み込みのPair
クラスがあります。このステップでは、Pair
クラスを使用してペアを作成および操作する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import javafx.util.Pair;
public class PairsInJava {
public static void main(String[] args) {
Pair<String, Integer> p1 = new Pair<>("apple", 1);
Pair<String, Integer> p2 = new Pair<>("banana", 2);
System.out.println("p1=" + p1.toString());
System.out.println("p2=" + p2.toString());
System.out.println("key of p1=" + p1.getKey());
System.out.println("value of p1=" + p1.getValue());
}
}
上記のコードでは、Pair
クラスを使用して2つのペアを作成し、それぞれのペアのkey
とvalue
を出力しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac PairsInJava.java && java PairsInJava
このステップでは、Javaでペアを作成するためのオブジェクト配列をどのように実装するか学びます。PairsInJava.java
ファイルに次のコードを追加します。
public class PairsInJava {
public static void main(String[] args) {
Object[] p1 = {"apple", 1};
Object[] p2 = {"banana", 2};
System.out.println("p1=" + p1[0] + "," + p1[1]);
System.out.println("p2=" + p2[0] + "," + p2[1]);
}
}
上記のコードでは、オブジェクト配列を使用して2つのペアを作成し、それぞれのペアのkey
とvalue
を出力しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac PairsInJava.java && java PairsInJava
このステップでは、Javaでペアを作成するためのユーザ定義のペアクラスをどのように実装するか学びます。PairsInJava.java
ファイルに次のコードを追加します。
class MyPair<T1, T2> {
private T1 key;
private T2 value;
public MyPair(T1 key, T2 value) {
this.key = key;
this.value = value;
}
public T1 getKey() {
return key;
}
public T2 getValue() {
return value;
}
public void setKey(T1 key) {
this.key = key;
}
public void setValue(T2 value) {
this.value = value;
}
}
public class PairsInJava {
public static void main(String[] args) {
MyPair<String, Integer> p1 = new MyPair<>("apple", 1);
MyPair<String, Integer> p2 = new MyPair<>("banana", 2);
System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
System.out.println("p2=" + p2.getKey() + "," + p2.getValue());
}
}
上記のコードでは、ペアを作成するためのカスタムクラスMyPair
を定義し、それぞれのペアのkey
とvalue
を出力しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac PairsInJava.java && java PairsInJava
このステップでは、AbstractMap.SimpleEntry
クラスを使用してペアを作成する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import java.util.AbstractMap;
public class PairsInJava {
public static void main(String[] args) {
AbstractMap.SimpleEntry<String, Integer> p1 = new AbstractMap.SimpleEntry<>("apple", 1);
System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
p1.setValue(2);
System.out.println("new p1=" + p1.getKey() + "," + p1.getValue());
}
}
上記のコードでは、AbstractMap.SimpleEntry
クラスを使用してペアを作成し、その値を変更しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac PairsInJava.java && java PairsInJava
このステップでは、AbstractMap.SimpleImmutableEntry
クラスを使用して不変なペアを作成する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import java.util.AbstractMap;
public class PairsInJava {
public static void main(String[] args) {
AbstractMap.SimpleImmutableEntry<String, Integer> p1 = new AbstractMap.SimpleImmutableEntry<>("apple", 1);
System.out.println("p1=" + p1.getKey() + "," + p1.getValue());
// 値を設定できません
// p1.setValue(2);
}
}
上記のコードでは、AbstractMap.SimpleImmutableEntry
クラスを使用して不変なペアを作成しています。key
とvalue
は初期化後は変更できません。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac PairsInJava.java && java PairsInJava
このステップでは、javatuplesライブラリのPair
クラスを使用してペアを作成する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import org.javatuples.Pair;
public class PairsInJava {
public static void main(String[] args) {
Pair<String, Integer> p1 = Pair.with("apple", 1);
Pair<String, Integer> p2 = Pair.with("banana", 2);
System.out.println("p1=" + p1.getValue0() + "," + p1.getValue1());
System.out.println("p2=" + p2.getValue0() + "," + p2.getValue1());
}
}
上記のコードでは、javatuples
ライブラリのPair
クラスを使用して各ペアのkey
とvalue
を作成して出力しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac -cp.:javatuples-1.2.jar PairsInJava.java && java -cp.:javatuples-1.2.jar PairsInJava
このステップでは、VavrライブラリのTuple2
クラスを使用してペアを作成する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import io.vavr.Tuple2;
public class PairsInJava {
public static void main(String[] args) {
Tuple2<String, Integer> p1 = new Tuple2<>("apple", 1);
System.out.println("p1=" + p1._1() + "," + p1._2());
}
}
上記のコードでは、VavrライブラリのTuple2
クラスを使用してペアのkey
とvalue
を作成して出力しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac -cp.:vavr-0.10.3.jar PairsInJava.java && java -cp.:vavr-0.10.3.jar PairsInJava
このステップでは、Apache CommonsライブラリのMutablePair
とImmutablePair
クラスを使用してペアを作成および操作する方法を学びます。PairsInJava.java
ファイルに次のコードを追加します。
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.MutablePair;
public class PairsInJava {
public static void main(String[] args) {
MutablePair<String, Integer> p1 = new MutablePair<>("apple", 1);
ImmutablePair<String, Integer> p2 = new ImmutablePair<>("banana", 2);
System.out.println("p1=" + p1.getLeft() + "," + p1.getRight());
System.out.println("p2=" + p2.getLeft() + "," + p2.getRight());
p1.setLeft("orange");
p1.setRight(3);
System.out.println("new p1=" + p1.getLeft() + "," + p1.getRight());
// 不変ペアの値を設定できません
// p2.setLeft("kiwi");
p2 = p2.withLeft("kiwi");
System.out.println("new p2=" + p2.getLeft() + "," + p2.getRight());
}
}
上記のコードでは、Apache CommonsライブラリのMutablePair
とImmutablePair
クラスを使用してペアを作成し、そのkey
とvalue
を変更しています。
コードをコンパイルして実行するには、次のコマンドを実行します。
javac -cp.:commons-lang3-3.13.0.jar PairsInJava.java && java -cp.:commons-lang3-3.13.0.jar PairsInJava
ペアは、相互にマッピング関係にある2つのデータ項目を格納するための簡単な方法です。この実験では、Javaにおけるペアの実装に異なるクラスとメソッドを使用しました。一般的な方法としては、Apache CommonsやVavrライブラリのような外部ライブラリを使用する方法、組み込みのJavaFX Pairクラスを使用する方法、カスタムペアクラスを作成する方法、およびオブジェクト配列を使用する方法が挙げられます。