Maison > développement back-end > Golang > le corps du texte

Comment trier des structures de données complexes avec plusieurs niveaux de tranches enfants ?

DDD
Libérer: 2024-10-29 04:10:02
original
1015 Les gens l'ont consulté

How to Sort Complex Data Structures with Multiple Levels of Child Slices?

Tri des structures de données complexes avec plusieurs niveaux de tranches enfants

Cet article explore une méthode d'organisation de structures de données complexes impliquant des tranches et des sous-tranches en respectant plusieurs exigences de tri. Considérez le scénario suivant :

Structure de données d'entrée :

  • Une tranche de structures parent :

    type Parent struct {
      id       string
      children []Child
    }
    Copier après la connexion
  • Chaque parent a une tranche de structures enfants :

    type Child struct {
      id string
    }
    Copier après la connexion

Objectifs de tri :

  1. Trier la tranche parent par leur champ d'identification.
  2. Pour chaque parent, triez la tranche de leurs enfants en fonction de leur champ d'identification.

Sortie souhaitée :

[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Copier après la connexion

Mise en œuvre :

Pour atteindre ces objectifs de tri, les étapes suivantes sont suivies :

  1. Trier la tranche parent :

    sort.Slice(parents, func(i, j int) bool {return parents[i].id < parents[j].id})
    Copier après la connexion

    Cette ligne trie les tranches des parents par ordre croissant de leur champ d'identification à l'aide de la fonction sort.Slice intégrée.

  2. Trier les tranches enfants :

    for _, parent := range parents {
     sort.Slice(parent.children, func(i, j int) bool {return parent.children[i].id < parent.children[j].id})
    }
    Copier après la connexion

    Cette boucle parcourt chaque parent dans la tranche des parents triés et utilise une autre instance de sort.Slice pour trier la tranche des enfants de chaque parent par ordre croissant de leur champ d'identification.

En suivant ces étapes, la structure de données complexe peut être triée efficacement pour satisfaire aux exigences de tri spécifiées, ce qui donne le format de sortie souhaité.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal