kotlin集合: 集合間操作 : intersect/subtract/union/minus/plus/retainAll

集合間操作

  • intersect(…) : 返回一個集合,其中包含此集合和指定集合所包含的所有元素,交集
  • subtract(…) : 返回一個集合,其中包含此數組包含但未包含在指定集合中的所有元素,差集
  • union(…) : 返回包含兩個集合中所有不同元素的集合,並集
  • minus(…) : 返回包含原始集合的所有元素的列表,但給定的數組中包含的元素除外,補集

plus : 合併

private fun plus() {
    val mList1 = arrayListOf(0, 1, 2, 3, 4, 5, 6)
    val mList2 = arrayListOf(0, 1, 2, 3, 9, 8, 7)

    println("============plus=============")
    //A.plus(B) : A元素 + B元素,A.addAll(B)的效果
    println(mList1.plus(mList2))
    //[0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 9, 8, 7]
    println(mList2.plus(mList1))
    //[0, 1, 2, 3, 9, 8, 7, 0, 1, 2, 3, 4, 5, 6]
}

minus


private fun minus() {
    val mList1 = arrayListOf(0, 1, 2, 3, 4, 5, 6)
    val mList2 = arrayListOf(0, 1, 2, 3, 9, 8, 7)
    println("============minus=============")
    //A.minus(B) : A中去掉和B相同的元素
    println(mList1.minus(mList2))
    //[4, 5, 6]
    println(mList2.minus(mList1))
    //[9, 8, 7]
}

union


private fun union() {
    val mList1 = arrayListOf(0, 1, 2, 3, 4, 5, 6)
    val mList2 = arrayListOf(0, 1, 2, 3, 9, 8, 7)
    println("============union=============")
    //A.union(B) : A元素 + B元素,A.addAll(B)的效果,但去重了
    println(mList1.union(mList2))
    //[0, 1, 2, 3, 4, 5, 6, 9, 8, 7]
    println(mList2.union(mList1))
    //[0, 1, 2, 3, 9, 8, 7, 4, 5, 6]
}

subtract


private fun subtract() {
    val mList1 = arrayListOf(0, 1, 2, 3, 4, 5, 6)
    val mList2 = arrayListOf(0, 1, 2, 3, 9, 8, 7)
    println("============subtract=============")
    //A.subtract(B) : A中去掉和B相同的元素
    println(mList1.subtract(mList2))
    //[4, 5, 6]
    println(mList2.subtract(mList1))
    //[9, 8, 7]
}

intersect : 取交集


private fun intersect() {
    val mList1 = arrayListOf(0, 1, 2, 3, 4, 5, 6)
    val mList2 = arrayListOf(0, 1, 2, 3, 9, 8, 7)
    println("============intersect=============")
    //A.intersect(B) : A、B取相同的元素,即交集 ,本質也是retainAll,但去重
    println(mList1.intersect(mList2))
    //[0, 1, 2, 3]
    println(mList2.intersect(mList1))
    //[0, 1, 2, 3]
}

: retainAll : 取交集


/**
 * 取兩個集合交集:
 */
private fun retainAll() {
    val mList1 = mutableListOf(0, 1, 3, 5, 7, 9)
    val mList2 = mutableListOf(0, 2, 4, 6, 8, 10)
    mList1.retainAll(mList2)
    println(mList1)//[0]
}

zip :


private fun zip() {
    val mList3 = arrayListOf("x1", "x2", "x3", "x4")
    val mList4 = arrayListOf("y1", "y2", "y3")
    println(mList3.zip(mList4))
    //[(x1, y1), (x2, y2), (x3, y3)]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章