Go語言程式:從陣列中移除重複元素


在本教程中,我們將編寫一個 Go 語言程式,用於從陣列中移除重複元素。移除重複條目指的是去除多次出現的相同值。在本教程中,我們將使用整數陣列和字串陣列作為示例。

方法 1:使用外部函式從陣列中移除重複值

以下程式碼演示瞭如何使用使用者定義函式從整數陣列中移除重複值。

演算法

步驟 1 − 首先,我們需要匯入 fmt 包。

步驟 2 − 現在,建立一個名為 removeDuplicate() 的函式,該函式接受一個數組作為引數,並在移除所有重複條目後返回一個數組。

步驟 3 − 此函式使用 for 迴圈迭代陣列。

步驟 4 − 在這裡,我們建立了一個鍵為整數、值為布林值的對映,預設情況下,map_var 儲存的值為 false。

步驟 5 − 在陣列的每次迭代中,我們檢查 map_var 的值,如果它是 false,則我們需要獲取該值並將其追加到上面建立的新陣列中。

步驟 6 − 重複此過程,直到檢查完所有陣列值,然後返回剛剛形成的新陣列。

步驟 7 − 現在,我們需要啟動主函式。

步驟 8 − 初始化一個整數陣列 arr,向其中儲存值,並在螢幕上列印陣列。

步驟 9 − 現在,透過將上面建立的陣列作為引數傳遞給它,來呼叫 removeDuplicate 函式。

步驟 10 − 將獲得的結果儲存在一個名為 result 的陣列中,並在螢幕上列印陣列。

示例

使用外部函式從陣列中移除重複值的 Go 語言程式。

package main
import "fmt"

// making a function named removeDuplicate()
func removeDuplicate(arr [8]int) []int {
   map_var := map[int]bool{}
   result := []int{}
   for e := range arr {
      if map_var[arr[e]] != true {
         map_var[arr[e]] = true
         result = append(result, arr[e])
      }
   }
   return result
}
func main() {
   arr := [8]int{1, 2, 2, 4, 4, 5, 7, 5}
   fmt.Println("The unsorted array entered is:", arr)
   result := removeDuplicate(arr)
   fmt.Println("The array obtained after removing the duplicate values is:", result)
}

輸出

The unsorted array entered is: [1 2 2 4 4 5 7 5]
The array obtained after removing the duplicate values is: [1 2 4 5 7]

方法 2:不使用對映從陣列中移除重複元素

現在讓我們看看另一個示例,說明如何不使用對映從陣列中移除重複條目。

演算法

步驟 1 − 匯入 fmt 包,該包允許我們在螢幕上列印任何內容。

步驟 2 − 呼叫 main() 函式。

步驟 3 − 初始化並在整數陣列中儲存元素,並在螢幕上列印它。

步驟 4 − 使用 for 迴圈迭代陣列,以檢查當前元素是否等於下一個元素。

步驟 5 − 如果兩個元素相等,則使用 for 迴圈移除重複元素,並透過執行 size-- 將陣列的大小減 1。

步驟 6 − 迭代完整個陣列後,使用 fmt.Println() 函式在螢幕上列印獲得的新陣列的元素。

示例

Go 語言程式:從陣列中移除重複元素。

package main
import "fmt"
func main() {
   arr := []int{1, 2, 2, 4, 4, 5, 7, 5}
   fmt.Println("The unsorted array entered is:", arr)
   size := len(arr)
   for i := 0; i < size; i++ {
      for j := i + 1; j < size; j++ {
         if arr[i] == arr[j] {
            for k := j; k < size-1; k++ {
               arr[k] = arr[k+1]
            }
            size--
            j--
         }
      }
   }
   fmt.Println("The elements of array obtained after removing the duplicate values is:")
   for i := 0; i < size; i++ {
      fmt.Println(arr[i])
   }
}

輸出

The unsorted array entered is: [1 2 2 4 4 5 7 5]
The elements of array obtained after removing the duplicate values is:
1
2
4
5
7

結論

我們已經成功編譯並執行了一個 Go 語言程式,用於從陣列中移除重複元素,並附帶示例。

更新於: 2023年1月6日

375 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告