ホームページ  >  記事  >  バックエンド開発  >  複数レベルの子スライスを持つ複雑なデータ構造をソートするにはどうすればよいですか?

複数レベルの子スライスを持つ複雑なデータ構造をソートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-29 04:10:021011ブラウズ

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

複数レベルの子スライスを持つ複雑なデータ構造の並べ替え

この記事では、スライスとサブスライスを含む複雑なデータ構造を整理する方法について説明します。複数の並べ替え要件を尊重することによって。次のシナリオを考えてみましょう:

入力データ構造:

  • 親構造体のスライス:

    type Parent struct {
      id       string
      children []Child
    }
  • 各親には子構造体のスライスがあります:

    type Child struct {
      id string
    }

並べ替え目標:

  1. 親スライスの並べ替え
  2. 親ごとに、子のスライスを ID フィールドで並べ替えます。

必要な出力:

[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]

実装:

これらの並べ替えの目標を達成するには、次の手順が実行されます:

  1. 親スライスを並べ替えます:

    sort.Slice(parents, func(i, j int) bool {return parents[i].id < parents[j].id})

    この行は、組み込みの sort.Slice 関数を使用して、親スライスを ID フィールドの昇順に並べ替えます。

  2. 子スライスの並べ替え:

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

    このループは、並べ替えられた親スライス内の各親を反復し、sort.Slice の別のインスタンスを使用して、各親の子スライスを ID フィールドの昇順で並べ替えます。

これらの手順に従うことで、複雑なデータ構造を効果的に並べ替えて、指定された並べ替え要件を満たすことができ、目的の出力形式が得られます。

以上が複数レベルの子スライスを持つ複雑なデータ構造をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。