JavaTuples in Java
-
Eigenschaften von
JavaTuples
-
Tupelklassen in
JavaTuples
-
Methoden in
JavaTuples
- Tuple implementieren in Java
Ein Tupel ist eine Datenstruktur, die Objekte speichern kann, ohne dass eine Beziehung zwischen ihnen erforderlich ist, aber ein gemeinsames Motiv hat. Java unterstützt die Tupel-Datenstruktur nicht, aber wir können eine JavaTuples
-Bibliothek verwenden.
Eigenschaften von JavaTuples
- Die Tupel sind typsicher
- Sie sind unveränderlich
- Wir können Tupelwerte durchlaufen
- Sie sind serialisierbar
- Sie implementieren
Comparable<Tuple>
- Implementiert Methoden wie
equals()
,hashCode()
undtoString()
Tupelklassen in JavaTuples
Wir können bis zu zehn Elemente in Tupelklassen verwenden. Für jede Anzahl von Elementen in JavaTuples
gibt es spezielle Unterklassen, die in der folgenden Tabelle aufgeführt sind:
Anzahl der Elemente (Tupelgröße) | Klassenname | Beispiel |
---|---|---|
Eins | Unit |
Unit<1> |
Zwei | Pair |
Pair<1,2> |
Drei | Triplet |
Triplet<1,2,3> |
Vier | Quartet |
Quartet<1,2,3,4> |
Fünf | Quintet |
Quintet<1,2,3,4,5> |
Sechs | Sextet |
Sextet<1,2,3,4,5,6> |
Sieben | Septet |
Septet<1,2,3,4,5,6,7> |
Acht | Octet |
Octet<1,2,3,4,5,6,7,8> |
Neun | Ennead |
Ennead<1,2,3,4,5,6,7,8,9> |
Zehn | Decade |
Decade<1,2,3,4,5,6,7,8,9,10> |
Methoden in JavaTuples
Die Klasse Tuple
stellt verschiedene Methoden zur Verfügung, um Operationen auszuführen.
Methode | Beschreibung |
---|---|
equals() |
Es wird verwendet, um die Standardimplementierung der Methode equals der Klasse Object zu überschreiben |
hashCode() |
Gibt einen Hashcode für jedes Objekt zurück. |
toString() |
Gibt eine Zeichenkettendarstellung zurück |
getSize() |
Gibt die Größe der Tupel zurück |
getValue() |
Gibt einen Wert an einer angegebenen Position in einem Tupel zurück |
indexOf() |
Gibt den Index des abgefragten Teilstrings in einem gegebenen String zurück. |
contains() |
Überprüfen Sie, ob ein Element im Tupel vorhanden ist |
containsAll() |
Überprüft, ob alle Elemente einer Liste oder eines Arrays im Tupel vorhanden sind oder nicht |
iterator() |
Gibt einen Iterator zurück |
lastIndexOf() |
Gibt den letzten Index des abgefragten Teilstrings in einem gegebenen String zurück. |
toArray() |
Tupel zu Array |
toList() |
Tupel zum Auflisten |
Tuple implementieren in Java
Wir importieren die folgende Maven-basierte Abhängigkeit, um die Bibliothek JavaTuples
zu verwenden.
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>[1.2]</version>
<scope>compile</scope>
</dependency>
Im Beispiel implementieren wir die verschiedenen Tupelklassen in der obigen Tabelle und erhalten ihre Werte, indem wir sie drucken. Wir bieten verschiedene Datentypen in den Tupeln wie String
, Integer
, Boolean
usw.
Wir erstellen auch eine Klasse DummyClass
und übergeben ihr Objekt in den Tupeln, wenn es einen Fehler auslöst.
import org.javatuples.*;
public class JavaTuplesExample {
public static void main(String[] args) {
Unit<String> unitTuple = new Unit<>("First Tuple Element");
Pair<String, Integer> pairTuple = new Pair<>("First Tuple Element", 2);
Triplet<String, Integer, Boolean> tripletTuple = new Triplet<>("First Tuple Element", 2, true);
Quartet<String, Integer, Boolean, String> quartetTuple =
new Quartet<>("First Tuple Element", 2, true, "Fourth Tuple Element");
Quintet<String, Integer, Boolean, String, Integer> quintetTuple =
new Quintet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5);
Sextet<String, Integer, Boolean, String, Integer, DummyClass> sextetTuple =
new Sextet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass());
Septet<String, Integer, Boolean, String, Integer, DummyClass, Integer> septetTuple =
new Septet<>(
"First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass(), 7);
Octet<String, Integer, Boolean, String, Integer, DummyClass, Integer, String> octetTuple =
new Octet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass(), 7,
"Eight Tuple Element");
Ennead<String, Integer, Boolean, String, Integer, DummyClass, Integer, String, Integer>
enneadTuple = new Ennead<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5,
new DummyClass(), 7, "Eight Tuple Element", 9);
Decade<String, Integer, Boolean, String, Integer, DummyClass, Integer, String, Integer, String>
decadeTuple = new Decade<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5,
new DummyClass(), 7, "Eight Tuple Element", 9, "Tenth Tuple Element");
System.out.println(unitTuple);
System.out.println(pairTuple);
System.out.println(tripletTuple);
System.out.println(quartetTuple);
System.out.println(quintetTuple);
System.out.println(sextetTuple);
System.out.println(septetTuple);
System.out.println(octetTuple);
System.out.println(enneadTuple);
System.out.println(decadeTuple);
}
}
class DummyClass {}
Ausgabe:
[First Tuple Element]
[First Tuple Element, 2]
[First Tuple Element, 2, true]
[First Tuple Element, 2, true, Fourth Tuple Element]
[First Tuple Element, 2, true, Fourth Tuple Element, 5]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@254989ff]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@5d099f62, 7]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@37f8bb67, 7, Eight Tuple Element]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@49c2faae, 7, Eight Tuple Element, 9]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@20ad9418, 7, Eight Tuple Element, 9, Tenth Tuple Element]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn