Maison  >  Article  >  développement back-end  >  Comment éliminer les doublons d’une tranche, y compris le dernier élément ?

Comment éliminer les doublons d’une tranche, y compris le dernier élément ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 06:48:29513parcourir

How to Eliminate Duplicates from a Slice, Including the Last Element?

Éliminer les doublons d'une tranche

Le maintien d'éléments uniques au sein d'une tranche est crucial pour une manipulation et une récupération efficaces des données. Considérez un scénario dans lequel vous souhaitez supprimer les homologues en double d’un fichier texte à l’aide d’un PeerID et d’une adresse spécifiques. Bien que la solution fournie semble prometteuse, elle rencontre un problème lorsque le dernier homologue est un doublon.

Pour résoudre ce problème, une approche modifiée qui gère efficacement les suppressions de doublons, y compris le dernier, est :

<code class="go">i := 0
for _, v := range cfg.Bootstrap {
   if v.PeerId == peer.PeerId &amp;&amp; v.Address == peer.Address {
      continue
   }
   cfg.Bootstrap[i] = v
   i++
}
cfg.Bootstrap = cfg.Bootstrap[:i]</code>

Dans cette solution révisée, nous introduisons une variable d'index i pour garder une trace de la prochaine position vide dans la tranche. Au fur et à mesure que nous parcourons la tranche, si un élément correspond aux critères en double, nous l'ignorons simplement. Sinon, nous copions l'élément non dupliqué à la ième position et incrémentons i.

Enfin, nous tronquons la tranche pour supprimer tout élément en excès au-delà du dernier élément non dupliqué : cfg.Bootstrap = cfg.Bootstrap[ :je]. Cette approche garantit que tous les doublons, même ceux en fin de tranche, sont efficacement supprimés, préservant ainsi l'intégrité de vos données sans provoquer de panique.

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