JavaTuples in Java

Rupam Yadav 12 Oktober 2023
  1. Eigenschaften von JavaTuples
  2. Tupelklassen in JavaTuples
  3. Methoden in JavaTuples
  4. Tuple implementieren in Java
JavaTuples 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() und toString()

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 Yadav avatar Rupam Yadav avatar

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