Table des matières
Obtenir les éléments de la table de hachage sous forme de tableau trié
Exemple
Sortie
Maison développement back-end C++ Comment obtenir des éléments de table de hachage sous forme de tableau trié ?

Comment obtenir des éléments de table de hachage sous forme de tableau trié ?

Aug 26, 2023 pm 10:53 PM

Comment obtenir des éléments de table de hachage sous forme de tableau trié ?

Une table de hachage est une collection non universelle de paires clé-valeur disposées en fonction du code de hachage de la clé. Les tables de hachage sont utilisées pour créer des collections stockées à l'aide de tables de hachage. Les tables de hachage optimisent les recherches en calculant le code de hachage pour chaque clé et en le stockant dans un panier interne. Lorsque nous accédons à une valeur spécifique de la table de hachage, le code de hachage correspond à la clé spécifiée.

Cette collection de tables de hachage est définie dans l'espace de noms System.Collections de C#. La classe qui représente une collection de tables de hachage est la classe « Hashtable ». Cette classe fournit des constructeurs, des méthodes et des propriétés pour opérer sur des collections de tables de hachage. Par défaut, les collections de tables de hachage ne sont pas triées. Si nous voulons une collection triée de tables de hachage, nous devons la représenter sous forme de Array ou ArrayList et trier les éléments.

Dans cet article, nous apprendrons comment obtenir des éléments de table de hachage sous forme de tableau trié. Alors commençons.

Obtenir les éléments de la table de hachage sous forme de tableau trié

Nous savons que par défaut, les collections de tables de hachage ne sont pas triées. Trier une collection de tables de hachage peut être très difficile car nous créons la collection de tables de hachage en fonction des clés, puis ajoutons des valeurs à chaque clé.

Si nous voulons trier une collection de tables de hachage, nous devons la trier en fonction de clés ou de valeurs. Il n'existe pas de méthode directe dans la classe Hashtable pour trier une collection de tables de hachage. Il faut donc se tourner vers d’autres méthodes.

Une solution consiste à obtenir les éléments de la table de hachage (clés ou valeurs) sous forme de tableau trié. Pour ce faire, nous suivrons les étapes répertoriées ci-dessous.

  • Créer un objet de table de hachage

  • Remplissez cet objet avec des paires clé-valeur

  • Créez un tableau de type chaîne, longueur = longueur de la table de hachage

  • Parcourez la table de hachage en fonction des clés et remplissez le tableau avec chaque clé

  • Trier le tableau généré

Exemple

Nous avons écrit cette méthode en utilisant C# comme indiqué ci-dessous.

using System;
using System.Collections;
class Program {
   public static void Main() {
     
      // Create a Hashtable
      Hashtable langCodes = new Hashtable();
 
      // Add elements to the Hashtable
      langCodes.Add("C++", "CPlusPlus");
      langCodes.Add("C#", "CSharp");
      langCodes.Add("Java", "Java");
      langCodes.Add("PL", "Perl");
      langCodes.Add("PG", "Prolog");
      int k = langCodes.Count;
     
      // create array of length = hashtable length
      string[] sortedArray = new string[k];
 
      // Retrieve key values in Array
      int i = 0;
      Console.WriteLine("Hashtable langCodes Contents:");
      foreach (DictionaryEntry de in langCodes) {
         Console.WriteLine("{0} ({1}) ", de.Key, de.Value);
         sortedArray[i] = de.Key.ToString();
         i++;
      }
      Array.Sort(sortedArray);
      Console.WriteLine("Contents of sorted array based on Hashtable keys:");
      foreach (var item in sortedArray) {
         Console.WriteLine(item);
      }
   }
}
Copier après la connexion

Dans ce programme, nous définissons un objet Hashtable langCodes et le remplissons avec des paires clé-valeur. Nous récupérons ensuite la longueur de la table de hachage et utilisons Déclarez un tableau "sortedArray" de cette longueur. Nous traversons ensuite table de hachage langCodes et remplir l'objet tableau trié avec des clés langCodes Valeurs de la table de hachage.

Ensuite, nous utilisons le filtre Array.Sort(sortedArray) pour trier le tableau et imprimer Ce tableau trié.

Sortie

La sortie du programme est la suivante.

Hashtable langCodes Contents:
PG (Prolog) 
Java (Java) 
C# (CSharp) 
PL (Perl) 
C++ (CPlusPlus) 
Contents of sorted array based on Hashtable keys:
C#
C++
Java
PG
PL
Copier après la connexion

À partir du résultat, nous pouvons voir que les éléments clés de la table de hachage sont récupérés sous la forme d'un tableau trié d'éléments.

Donnons maintenant un autre exemple. Nous utilisons la même méthode évoquée ci-dessus. La seule différence est que dans cet exemple, nous remplirons le tableau avec des valeurs au lieu des clés d'une table de hachage.

Exemple

Voyons le programme C# complet.

using System;
using System.Collections;
class Program {
   public static void Main() {
      // Create a Hashtable
      Hashtable numberNames = new Hashtable();
     
      // Add elements to the Hashtable
      numberNames.Add(12, "Twelve");
      numberNames.Add(2, "Two");
      numberNames.Add(65, "Sixty Five");
      numberNames.Add(15, "Fifteen");
      numberNames.Add(18, "Eighteen");
      int k = numberNames.Count;
      
      //create array of length = hashtable length
      string[] sortedArray = new string[k];

      // Retrieve hashtable values in array.
      int i = 0;
      Console.WriteLine("Hashtable langCodes Contents:");
      foreach (DictionaryEntry de in numberNames) {
         Console.WriteLine("{0} ({1}) ", de.Key, de.Value);
         sortedArray[i] = de.Value.ToString();
         i++;
      }
      Array.Sort(sortedArray);
      Console.WriteLine("Contents of sorted array based on Hashtable values:");
      foreach (var item in sortedArray) {
         Console.WriteLine(item);
      }
   }
}
Copier après la connexion

Le programme a un objet de table de hachage, numberNames. Nous le remplissons de nombres et de leurs noms de numéros correspondants. En parcourant la table de hachage, nous remplissons le tableau trié avec des valeurs. Nous trions ensuite le tableau à l'aide du filtre Array.Sort() et imprimons le tableau trié.

Sortie

La sortie du programme est présentée ci-dessous.

Hashtable langCodes Contents:
18 (Eighteen) 
12 (Twelve) 
65 (Sixty Five) 
2 (Two) 
15 (Fifteen) 
Contents of sorted array based on Hashtable values:
Eighteen
Fifteen
Sixty Five
Twelve
Two
Copier après la connexion

D'après le résultat, nous pouvons voir que le contenu du tableau (les valeurs dans la table de hachage) sont effectivement triés par ordre alphabétique. Nous pouvons facilement comparer la sortie de la table de hachage et le tableau trié. Dans une table de hachage, la sortie n'est pas triée. Les paires clé-valeur sont affichées de manière aléatoire. Dans un tableau, la sortie est triée.

Bien que trier les éléments de la table de hachage soit difficile, nous pouvons le faire en représentant les éléments de la table de hachage sous forme de tableaux. Mais il n'est pas possible de trier les clés et les valeurs en même temps. On peut récupérer toutes les clés d'un tableau ou toutes les valeurs d'un tableau. Nous pouvons ensuite trier le tableau en utilisant le filtre Array.Sort(). Nous pouvons également convertir la table de hachage en un tableau ou une liste de tableaux et la traiter.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques Apr 04, 2025 am 11:18 AM

C Structure des données du langage: La représentation des données de l'arborescence et du graphique est une structure de données hiérarchique composée de nœuds. Chaque nœud contient un élément de données et un pointeur vers ses nœuds enfants. L'arbre binaire est un type spécial d'arbre. Chaque nœud a au plus deux nœuds enfants. Les données représentent StrustReenode {intdata; structTreenode * gauche; structureReode * droite;}; L'opération crée une arborescence d'arborescence arborescence (prédécision, ordre dans l'ordre et ordre ultérieur) Le nœud d'insertion de l'arborescence des arbres de recherche de nœud Graph est une collection de structures de données, où les éléments sont des sommets, et ils peuvent être connectés ensemble via des bords avec des données droites ou peu nombreuses représentant des voisins.

La vérité derrière le problème de fonctionnement du fichier de langue C La vérité derrière le problème de fonctionnement du fichier de langue C Apr 04, 2025 am 11:24 AM

La vérité sur les problèmes de fonctionnement des fichiers: l'ouverture des fichiers a échoué: les autorisations insuffisantes, les mauvais chemins de mauvais et les fichiers occupés. L'écriture de données a échoué: le tampon est plein, le fichier n'est pas écrivatif et l'espace disque est insuffisant. Autres FAQ: traversée de fichiers lents, encodage de fichiers texte incorrect et erreurs de lecture de fichiers binaires.

Comment utiliser efficacement les références RValue en C? Comment utiliser efficacement les références RValue en C? Mar 18, 2025 pm 03:29 PM

L'article discute de l'utilisation efficace des références de référence en C pour la sémantique de déplacement, le transfert parfait et la gestion des ressources, mettant en évidence les meilleures pratiques et les améliorations des performances. (159 caractères)

Quelles sont les exigences de base pour les fonctions de langue C Quelles sont les exigences de base pour les fonctions de langue C Apr 03, 2025 pm 10:06 PM

Les fonctions de langue C sont la base de la modularisation du code et de la construction de programmes. Ils se composent de déclarations (en-têtes de fonction) et de définitions (corps de fonction). Le langage C utilise des valeurs pour transmettre les paramètres par défaut, mais les variables externes peuvent également être modifiées à l'aide d'adresse Pass. Les fonctions peuvent avoir ou ne pas avoir de valeur de retour et le type de valeur de retour doit être cohérent avec la déclaration. La dénomination de la fonction doit être claire et facile à comprendre, en utilisant un chameau ou une nomenclature de soulignement. Suivez le principe de responsabilité unique et gardez la simplicité de la fonction pour améliorer la maintenabilité et la lisibilité.

Comment utiliser les plages dans C 20 pour une manipulation de données plus expressive? Comment utiliser les plages dans C 20 pour une manipulation de données plus expressive? Mar 17, 2025 pm 12:58 PM

Les plages de c 20 améliorent la manipulation des données avec l'expressivité, la composibilité et l'efficacité. Ils simplifient les transformations complexes et s'intègrent dans les bases de code existantes pour de meilleures performances et maintenabilité.

Comment calculer C-SUBScript 3 Indice 5 C-SUBScript 3 Indice Indice 5 Tutoriel d'algorithme Comment calculer C-SUBScript 3 Indice 5 C-SUBScript 3 Indice Indice 5 Tutoriel d'algorithme Apr 03, 2025 pm 10:33 PM

Le calcul de C35 est essentiellement des mathématiques combinatoires, représentant le nombre de combinaisons sélectionnées parmi 3 des 5 éléments. La formule de calcul est C53 = 5! / (3! * 2!), Qui peut être directement calculé par des boucles pour améliorer l'efficacité et éviter le débordement. De plus, la compréhension de la nature des combinaisons et la maîtrise des méthodes de calcul efficaces est cruciale pour résoudre de nombreux problèmes dans les domaines des statistiques de probabilité, de la cryptographie, de la conception d'algorithmes, etc.

Comment utiliser Move Semantics en C pour améliorer les performances? Comment utiliser Move Semantics en C pour améliorer les performances? Mar 18, 2025 pm 03:27 PM

L'article discute de l'utilisation de Move Semantics en C pour améliorer les performances en évitant la copie inutile. Il couvre la mise en œuvre de constructeurs de déplace

Comment le répartition dynamique fonctionne-t-il en C et comment affecte-t-il les performances? Comment le répartition dynamique fonctionne-t-il en C et comment affecte-t-il les performances? Mar 17, 2025 pm 01:08 PM

L'article traite de Dynamic Dispatch in C, ses coûts de performance et les stratégies d'optimisation. Il met en évidence les scénarios où la répartition dynamique a un impact

See all articles