List交集 並集 補集 差集

2022-05-26 10:00:07 字數 2292 閱讀 1128

最近回看了一下list的基礎,目前網上主流得對list交並補差有兩種方式

交集交集就是兩個集合都有的部分  lista listb 那a交b結果就是   

並集並集就是將兩個集合中所有的元素加在一起  lista listb  那麼a並b結果就是

差集差集就是兩集合元素相減,只保留前面集合中剩下的元素 lista listb 那麼a差b結果       如果b差a 那麼結果

補集我對補集的理解有點偏,但是比較好記,高中的時候就這麼記得, a補b   lista listb  結果 其實就是b差a     讀法:a關於b的相對補集是

b補a 結果 讀法b關於a的補集是

第一種:collectionutils工具包中的四個方法;該類所在包org.apache.commons.collections.collectionutils

//

並集

collectionutils.union(a, b);

//交集

collectionutils.intersection(a, b);

//交集的補集

collectionutils.disjunction(a, b);

//集合相減

collectionutils.subtract(a, b);

第二種:直接呼叫list中的方法

a交b

lista.retainall(listb);

a並blista.addall(listb);

a減去b

lista.removeall(listb);

上述的只是基礎型別的排序string,integer等,如果涉及到工作上業務實體類的時候需要在實體類中重寫 equals(

@override

public

boolean

equals(object obj)

@override

public

inthashcode()

根據具體業務寫equals()方法和hascode()方法

上面方法只適合少量資料操作,大量資料操作會非常慢,如果碰到大量資料,求交並補的話,還是要自己通過set集合自己些方法 ,大量資料還要看下面的,通過set來進行操作

/**

* @方法描述:獲取兩個arraylist的差集

* @param

firstarraylist 第乙個arraylist

* @param

secondarraylist 第二個arraylist

* @return

resultlist 差集arraylist

*/public

static listreceivedefectlist(listfirstarraylist, listsecondarraylist)

} resultlist = new arraylist(result);

return

resultlist;

}/*** @方法描述:獲取兩個arraylist的交集

* @param

firstarraylist 第乙個arraylist

* @param

secondarraylist 第二個arraylist

* @return

resultlist 交集arraylist

*/public

static listreceivecollectionlist(listfirstarraylist, listsecondarraylist)

}resultlist = new arraylist(result);

return

resultlist;

}/*** @方法描述:獲取兩個arraylist的去重並集

* @param

firstarraylist 第乙個arraylist

* @param

secondarraylist 第二個arraylist

* @return

resultlist 去重並集arraylist

*/public

static listreceiveunionlist(listfirstarraylist, listsecondarraylist)

resultlist = new arraylist(dawjidset);

return

resultlist;

}

交集並集差集

1 內連線 select from student a inner join sc b on a.sno b.sno 左連線 select from student a left join sc b on a.sno b.sno 差集 select sno from student except s...

golang 陣列之間的交集,差集,並集,補集

今天公司需求兩個陣列之間的差集,類庫下不下來,就獨立出來了乙份,希望讀者有用 package model import sort sync type set struct 新建集合物件 func new items int set s.add items.returns 新增元素 func s se...

shell bash 交集 並集 差集

方法一 直接用檔名 取兩個文字檔案的並集 交集 差集 並 sort m sort file1 uniq sort file2 uniq uniq 交 sort m sort file1 uniq sort file2 uniq uniq d 差 file1 file2 sort m sort fil...