Kotlin 数组 - subtract() 函数



Kotlin 数组的 subtract() 函数用于从另一个集合(“列表”和“集合”)中减去数组的元素,并返回一个包含此数组中但不在指定集合中的元素的集合。

返回的集合保留了原始数组的元素迭代顺序。

语法

以下是 Kotlin 数组 subtract() 函数的语法:

infix fun <T> Array<out T>.subtract(
   other: Iterable<T>
): Set<T>

参数

此函数接受其他集合(元素)作为参数。它表示一个包含要从数组中减去的元素的可迭代对象。它可以是任何集合,例如列表、集合等。

返回值

此函数返回一个集合,其中包含原始数组中不在指定集合(元素)中的元素。

示例 1

以下是一个基本的示例,用于演示 subtract() 函数的使用:

fun main() {
   val array = arrayOf(1, 2, 3, 4, 5)
   val elementsToSubtract = listOf(2, 4)

   // Subtract elementsToSubtract from array
   val result = array.subtract(elementsToSubtract)

   // Display result
   println(result)
}

输出

以上代码生成以下输出:

[1, 3, 5]

示例 2

现在,我们创建一个字符串数组。然后,我们使用subtract()函数从数组中减去列表:

fun main(args: Array<String>){
   val arr = arrayOf<String>("Daisy", "Rose", "Lotus", "Lily", "Sunflower")
   
   // elements to subtract 
   val list = listOf("Lotus", "Lily")
   
   // subtract list from this array
   val res = arr.subtract(list)
   println("After subtracted: $res")
}

输出

以下是输出:

After subtracted: [Daisy, Rose, Sunflower]

示例 3

下面的示例创建一个表示员工的对象数组,我们希望使用subtract()函数根据员工 ID 删除一部分员工:

data class Employee(val id: Int, val name: String, val department: String)
fun main() {
   val employees = arrayOf(
      Employee(1, "Alice", "HR"),
      Employee(2, "Bob", "Engineering"),
      Employee(3, "Charlie", "Finance"),
      Employee(4, "Diana", "Engineering"),
      Employee(5, "Eve", "HR")
   )

   val ids_To_Remove = setOf(2, 4)

   // Convert the set of IDs to remove into a list of employees to remove
   val employees_To_Remove = employees.filter { it.id in ids_To_Remove }

   // Subtract the employees to remove from the original array
   val remainingEmployees = employees.subtract(employees_To_Remove)

   // Display remaining employees
   remainingEmployees.forEach { println("${it.id}: ${it.name} - ${it.department}") }
}

输出

以上代码产生以下输出:

1: Alice - HR
3: Charlie - Finance
5: Eve - HR
kotlin_arrays.htm
广告