最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

對(duì)結(jié)構(gòu) Golang 的二維數(shù)組進(jìn)行排序

對(duì)結(jié)構(gòu) Golang 的二維數(shù)組進(jìn)行排序

Go
倚天杖 2022-12-13 16:02:36
我想為結(jié)構(gòu)的 2D 切片創(chuàng)建一致的順序,我正在從地圖創(chuàng)建 2D 切片,因此順序總是不同的。我的結(jié)構(gòu)看起來像// Hit contains the data for a hit.type Hit struct {    Key  string  `json:"key"`    Data []Field `json:"data"`}// Hits stores a list of hits.type Hits [][]Hit我想為我的類型內(nèi)容提供一致的順序Hits。我努力了:func (c Hits) Len() int { return len(c) }func (c Hits) Swap(i, j int) { c[i], c[j] = c[j], c[i] }func (c Hits) Less(i, j int) bool { return strings.Compare(c[i][0].Key, c[j][0].Key) == -1 }但結(jié)果似乎仍然以隨機(jī)順序返回。我正在考慮可能對(duì)切片中的每個(gè)項(xiàng)目進(jìn)行哈希處理,但認(rèn)為可能有一個(gè)更簡單的選擇
查看完整描述

1 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

a 上的迭代順序map,因?yàn)樗且粋€(gè)哈希表,所以它是相當(dāng)不確定的(實(shí)際上,它不是 - 將具有相同鍵的項(xiàng)目以完全相同的順序插入到 2 個(gè)映射中,每個(gè)映射的迭代順序?qū)⑹窍嗤模?/p>

假設(shè)您的地圖是一個(gè)map[string]Hit,為了以確定的順序?qū)ζ溥M(jìn)行迭代,我將枚舉地圖中的鍵集,對(duì)其進(jìn)行排序,然后使用該排序集來枚舉地圖。

是這樣的

package main


import (

  "fmt"

  "sort"

)


type Hit struct {

  Key  string  `json:"key"`

  Data []Field `json:"data"`

}


type Field struct {

  Value string `json:"value"`

}


func main() {

  var mapOfHits = getSomeHits()

  var sortedHits = sortHits(mapOfHits)

  

  for _, h := range sortedHits {

    fmt.Println(h.Key)

  }


}


func getSomeHits() map[string]Hit {

  return make(map[string]Hit, 0)

}


func sortHits(m map[string]Hit) []Hit {

  keys := make([]string, 0, len(m))

  sorted := make([]Hit, 0, len(m))

  

  for k := range m {

    keys = append(keys, k)

  }


  sort.Strings(keys)


  for _, k := range keys {

    sorted = append(sorted, m[k])

  }


  return sorted

}


查看完整回答
反對(duì) 回復(fù) 2022-12-13
  • 1 回答
  • 0 關(guān)注
  • 269 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)