我如何在Swift中连接或合并数组

我如何在Swift中连接或合并数组

Swift为我们提供了两种不同的方式来连接或合并Swift语言中的数组。

你可以使用+(加)运算符或append()方法。你还会看到其他方法,即如何在Swift中合并多个数组。这些方法是–

  • 使用加号(+)运算符

  • 使用append(contentOf:)方法

  • 使用flatMap()高阶函数

  • 使用join()方法

  • 使用reduce()高阶函数

方法1:使用+运算符合并数组

语法

let outputArray = firstArray + secondArray

为了使用+运算符来合并数组,简单地说,它是一个二进制运算符,返回一个新合并的数组。

算法

  • 第1步 – 申报数组

  • 第2步 – 使用+运算符合并两个数组

  • 第3步 – 将新合并的数组存储在另一个变量中

示例

import Foundation
let firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
let outputArray = firstArray + secondArray
print("Array 1 = ",firstArray,"\nArray 2 = ",secondArray,"\nMerged Array =", outputArray)

输出

Array 1 =  ["1", "2", "3", "4", "5"] 
Array 2 =  ["6", "7", "8", "9", "10"] 
Merged Array ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

注意,+(加)运算符返回一个新创建的数组,它是连接的结果。

示例

请记住,+(加)运算符照顾到了类型安全。这意味着你不能对两个不同类型的数组执行这个操作。如果你这样做,编译器会给你一个像下面这样的错误—-。

import Foundation
let firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [Int] = [6, 7, 8, 9, 10]
let outputArray = firstArray + secondArray
print(outputArray)

输出

Error

main.swift:4:30: error: binary operator '+' cannot be applied to operands of type '[String]' and '[Int]'

在上面的例子中,你正试图合并字符串数组和整数数组,这是不允许的。

示例

合并两个以上的数组-

在下面的例子中,我们将把3个数组合并到一个数组中,并打印输出结果 –

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let mergedArray = firstArray + secondArray + thirdArray
print(mergedArray)

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]

方法2:使用Append(contentOf:)方法合并数组

语法

firstArray.append(contentsOf: secondArray)

为了追加一个数组的内容,你必须用目标数组调用append(contentsOf:)方法。

算法

在转到一个例子之前,你应该注意到这个方法并不返回任何新的数组。它将目标数组的内容追加到调用者数组中。

示例

import Foundation
var firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
firstArray.append(contentsOf: secondArray)
print(firstArray)

输出

["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

你可以看到,firstArray是一个变量(不是常数),用来追加secondArray的内容。

示例

你也可以使用+=操作符来连接数组,这相当于调用append(contentsOf:)方法,如下所示——。

import Foundation
var firstArray: [String] = ["1", "2", "3", "4", "5"]
let secondArray: [String] = ["6", "7", "8", "9", "10"]
firstArray += secondArray

示例

合并两个以上的数组-

import Foundation
var firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
firstArray.append(contentsOf: secondArray)
firstArray.append(contentsOf: thirdArray)
print(firstArray)

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]

方法3:使用FlatMap()合并数组

语法

在Swift中,flatMap是Sequence上的一个方法,它通过应用一个转换函数对序列中的每个元素进行转换,并将得到的序列平铺成一个单一的序列。转换函数可以返回一个可选的值,该方法会自动丢弃零值。

let mergedArray = [firstArray, secondArray, thirdArray].flatMap({ $0 })

为了使用flatMap()函数,你需要传递一个合并后的数组,其结果是新的合并后的数组。

算法

  • 第1步 – 初始化你的数组

  • 第2步 – 将所有数组合并为一个数组

  • 第3步–在组合数组上调用flatMap()函数。

  • 第4步 – 将产生的数组存储在一个新的变量中。

示例

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let mergedArray = [firstArray, secondArray, thirdArray].flatMap({ $0 })
print(mergedArray)

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]

方法4:使用join()合并数组

语法

let flattenCollection = [firstArray, secondArray, thirdArray].joined()
let mergedArray = Array(flattenCollection)

你可以在一个组合数组上调用join函数,其结果是将元素变成一个平面集合。

现在,你需要从一个平面数组中创建一个新的数组,把所有的元素放到一个数组中。

算法

  • 第1步 – 初始化你的数组

  • 第2步 – 使用join()函数将它们连接起来

  • 第3步–存储联合函数的结果

  • 第4步 – 使用Array()将连接的数组转换为一个单一的数组

示例

这个方法返回这个序列的元素,连接起来。比如说。

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let flattenCollection = [firstArray, secondArray, thirdArray].joined()
let mergedArray = Array(flattenCollection)
print(mergedArray)

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]

方法5:使用reduce()合并数组

语法

这个方法返回使用给定的闭包来组合序列中的元素的结果。

let flattenArray = [firstArray, secondArray, thirdArray].reduce([]) { partialResult, element in
   partialResult + element
}

基本上,你必须用reduce()函数传递组合数组。为了使用reduce()函数,你需要分配一个初始结果,这是结果的初始化。

算法

  • 第1步 – 初始化你的数组

  • 第2步–将所有数组合并成一个数组

  • 第3步–分配初始结果

  • 第4步 – 将每个元素合并成一个部分结果

示例

在这段代码中,我们将使用reduce()函数来合并3个数组。

import Foundation
let firstArray: [Int] = [1, 2, 3]
let secondArray: [Int] = [4, 5, 6]
let thirdArray: [Int] = [7, 8, 9]
let flattenArray = [firstArray, secondArray, thirdArray].reduce([]) { partialResult, element in
   partialResult + element
}
print(flattenArray)

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]

结论

你了解了在Swift中合并数组的不同方法。每种方法都可以在不同的场景下用于不同的目的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程