Maison  >  Article  >  Java  >  Comment implémenter une classe de tuple personnalisée pour l'utiliser avec une table de hachage en Java ?

Comment implémenter une classe de tuple personnalisée pour l'utiliser avec une table de hachage en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-15 12:14:03330parcourir

How can a custom tuple class be implemented for use with a Hashtable in Java?

Utilisation de paires ou de 2-Tuples en Java

En Java, il n'y a pas de structure de données intégrée pour représenter les structures de tuples. Cette question explore comment créer une classe de tuple personnalisée pour répondre à cette exigence en Java.

Question :

Comment une structure de données personnalisée peut-elle être implémentée pour représenter des structures de tuple, spécifiquement pour une utilisation avec une table de hachage en Java ?

Réponse :

Pour créez une classe de tuple personnalisée en Java :

public class Tuple<X, Y> {
    public final X x;
    public final Y y;

    public Tuple(X x, Y y) {
        this.x = x;
        this.y = y;
    }
}

Cette classe définit une structure de données en paire avec deux paramètres de type génériques, lui permettant de contenir des valeurs de n'importe quel type. Les champs x et y contiennent les composants individuels du tuple.

Implications :

Lors de la conception de cette classe de tuple personnalisée, plusieurs considérations importantes se posent :

  • Égalité : Comment comparer les instances de tuple pour égalité ?
  • Immuabilité : Les instances de tuple doivent-elles être immuables pour garantir l'intégrité des données ?
  • Hachage : Si les instances de tuple seront utilisées comme clés pour hachage, comment doivent-ils être hachés efficacement ?

Exemple Utilisation :

Cette classe de tuple personnalisée peut être utilisée avec une table de hachage comme suit :

Hashtable<Long, Tuple<Set<Long>, Set<Long>>> table = ...;

Cette classe de hachage associe des clés de type Long à des valeurs qui sont des tuples contenant deux ensembles de longs (Définir).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn