Golang 文字列スライスの重複排除

この関数の機能は、入力文字列スライスから重複要素を削除し、重複を排除した結果を返すことです。具体的な実装ロジックは次のとおりです。

  1. 重複排除された文字列を保存するための空の結果スライスを作成しますresult
  2. 一意の文字列を保存するための一時マップを作成しますtempMapマップのキーは文字列で、値はバイトです。
  3. 入力文字列スライスslcの各要素を反復処理しますe
    • まず、tempMap長さを取得して変数に代入しますl
    • 次に、文字列をeキーとして使用し、値を 0 に設定して、 に保存しますtempMap
    • tempMap追加後に のtempMap長さが変更された 場合(つまり、存在しない要素が正常に追加された場合)、その要素は初めて出現し、繰り返されないことを意味します。
      • この要素をe結果のスライスに追加しますresult
  4. すべての要素を走査した後、結果スライスresult(重複排除後の結果) を返します。
// 通过map主键唯一的特性过滤重复元素
func RemoveDuplicateStrings(strs []string) []string {
    result := []string{}
    tempMap := map[string]byte{} // 存放不重复字符串
    for _, e := range strs {
        l := len(tempMap)
        tempMap[e] = 0
        if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
            result = append(result, e)
        }
    }
    return result
}

おすすめ

転載: blog.csdn.net/taoshihan/article/details/132353780