1. 程式人生 > >2 個 List 集合資料求並、補集操作

2 個 List 集合資料求並、補集操作

開發過程中,我們可能需要對 2 個 或多個 List 集合中的資料進行處理,比如多個 List 集合資料求 相同元素,多個 List 集合資料得到只屬於本身的資料,如圖示:

這裡寫圖片描述

這裡以 2 個 List 介紹,有一些業務要求我們處理得到圖上的 3 中情況
* 只屬於 A
* 共同的元素
* 只屬於 B

這種處理方式在數學上並不陌生,只屬於 A ,相當於集合上 B 關於 A 的相對補集;相同的元素,A 和 B 的並集;只屬於 B ,相當於集合上 A 關於 B 的相對補集。明白了這幾個概念,下面我們就介紹 Java 程式碼該如何為實現,程式碼如下

  public static void test() {

    List<Integer> A = new ArrayList<Integer>();
A.add(1); A.add(2); A.add(3); A.add(4); List<Integer> B = new ArrayList<Integer>(); B.add(2); B.add(4); B.add(5); B.add(6); Collection C = new ArrayList<Integer>(A); C.retainAll(B); System.out.println("A 與 B 並集:" + C); B.removeAll
(C); System.out.println("A 關於 B 的相對補集:" + B); A.removeAll(C); System.out.println("B 關於 A 的相對補集:" + A); }

執行該函式,得到結果如下:
這裡寫圖片描述

  • 實際應用場景,我們開發中一般什麼場合會用到這種處理呢,其實求並、補集實際開發過程中遇到機會還不少,比如,我們在頁面對一個 List 資料進行了增刪改操作,List 傳輸到後臺之後,需要我們對修改之後的資料儲存到資料庫中,頁面傳輸來的 資料 肯定和 資料庫原先儲存的資料不同, 我們要保證儲存到資料庫中的資料無誤,就需要拿 頁面傳輸的資料和資料庫中資料進行比較,從而執行相應的增刪改操作。

相關推薦

2 List 集合資料補集操作

開發過程中,我們可能需要對 2 個 或多個 List 集合中的資料進行處理,比如多個 List 集合資料求 相同元素,多個 List 集合資料得到只屬於本身的資料,如圖示: 這裡以 2 個 List 介紹,有一些業務要求我們處理得到圖上的 3 中情況 *

雙重for 迴圈處理2list資料

                List<RechargeDetailBean> insertRechargeDetails = new ArrayList<RechargeDetailBean>();                 List<

ssm- 兩list集合資料傳輸到jsp介面 類似for迴圈遍歷出來

後臺傳輸list集合的程式碼@RequestMapping("success.html")public ModelAndView successInfo(){List<Info> list=is.getInfoList();List<String> l

python-進階教程-對兩集合/字典交集差集

1.集合 a = set([1,2,3,4,5,100,1000]) b = set([1,2,3,4,5,128.1024]) #交集 print(a & b) #{1, 2, 3, 4, 5} #差集 print(a - b) #{1000, 100} #並集

list的交集,集,差集。

1. 獲取兩個list 的交集 1 2 3 4 5 6 7 8 9 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for

java 大資料比較兩list集合的差值

有這麼個場景,每天需要定時任務插入增量資料。如果通過介面獲取的直接根據時間過濾,那麼就能直接就可以插入庫中。但有時獲取到的並不是增量資料,比如微信公眾號獲取關注者列表時,獲取到的是全量資料,這樣每天就得將全量資料與庫中進行比較,只有庫中不存在資料才進行插入。這就有了兩個list比較差值的問題。

4 Springboot中使用redis儲存集合資料模擬條件查詢分頁讀取

前面幾篇講了使用redis儲存單個物件,自動快取、更新、刪除的做法,在實際專案中,更常用的是分頁查詢集合資料,條件查詢(譬如按照新增時間倒序排列)。 redis本身是不提供條件查詢的,因為是一個非關係型資料庫,那麼其實通過一些手段,也是能完成條件查詢的,尤其是有順序的條件查

List集合元素的計算排序查找統計

List集合 元素 計算、排序、查找、統計 引入:針對List元素的計算、排序、查找、統計。1)計算(max,min,sum)示例1:list01=[45, 90, 123, 987, -18, 78, 96]print("list01的最小值:",min(list01))pr

2list取交集

列表 print cti intersect 適合 數據 pen clas and list操作 element in a list and element in other list,元素在一個list,且在另一個list 在數據量大的時候使用set,把list轉為集合

python兩 list 獲取交集,集,差集的方法

交集 spa 兩個 方法 val inter tmp for col 1. 獲取兩個list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] #

java兩List的交集,集,差異集

public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add("3333"); lis

C#實戰018:Excel操作-多List集合合併問題

        今天提取Excel中的資料到集合中,然後再將集合進行合併,以獲取所有的資料再寫入到Excel中,於是我建立了多個list集合,然後分別獲取需要的資料,這裡我們用了5個集合,z1、z2、z3、z4是分別從excel提取的資料,而z這是用來合併z1

例題:建立一個物件陣列,內放5學生的資料(學號成績),用指標指向陣列首元素,輸出第1,3,5學生的資料。【面向物件設計】

題目: 建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。 解答:  程式程式碼如下: #include <iostream>

c# 將兩List集合合併

List<int> listA = new List<int> {1,2,3,5,7,9}; List<int> listB = new List<int> {13,4,17,29,2}; List<int> Re

合併兩list集合並且排序

集合合成的話List<Article> list1 = new ArrayList<Article>();  /*.....新增資料.......*/List<Articl

合併兩List集合

/第一個list集合          List<String> list_a=new ArrayList<String>();          list_a.add("A");          list_a.add("B");         

合併兩List集合。有相同的元素只存在一次

//第一個list集合 List<String> list_a=new ArrayList<String>(); list_a.add("A"); list_a.a

java list集合資料升序降序排序

1,Sting型別的List集合排序 List<String> list=new ArrayList<>();         list.add("易皇星");         list.add("阿弟");         list.add("冰球

java 對兩list進行“交集,集,差集,去重複集”的操作

@Test public void testTwoList(){ List<String> a = new ArrayList<String>(); List<

找出兩list集合中重複的部分

找出兩個list中重複的部分,程式碼簡單,如下: public static void main(String[] args) {          List<String> list  =   new  ArrayList<String>();