精华内容
下载资源
问答
  • java集合操作-----求两个集合的交集和并集-Go语言中文社区
    2021-03-15 03:41:37

    java求两个集合的交集和并集

    java如何求两个集合的交集和并集呢??其实java的API中已经封装了方法。今天写个简单的例子测试一下:(例子中以java.util.LinkedList为例)

    求连个集合的交集:

    import java.util.ArrayList;

    import java.util.List;

    public class TestCollection {

    public static void main(String[] args) {

    List strList = new ArrayList();

    List strList2 = new ArrayList();

    for(int i = 0; i < 10; i ++) {

    strList.add("aaa>>" + i);

    strList2.add("aaa>>" + (10 - i));

    }

    //求出交集

    strList2.retainAll(strList);

    System.out.println("交集大小:" + strList2.size());

    for(int i = 0; i < strList2.size(); i++) {

    System.out.println(strList2.get(i));

    }

    }

    }

    求两个集合的并集:

    import java.util.ArrayList;

    import java.util.List;

    public class TestCollection {

    public static void main(String[] args) {

    List strList = new ArrayList();

    List strList2 = new ArrayList();

    for(int i = 0; i < 10; i ++) {

    strList.add("aaa>>" + i);

    strList2.add("aaa>>" + (10 - i));

    }

    //求出并集

    strList2.removeAll(strList);

    strList2.addAll(strList);

    System.out.println("并集大小:" + strList2.size());

    for(int i = 0; i < strList2.size(); i++) {

    System.out.println(strList2.get(i));

    }

    }

    }   例子非常简单,希望对大家有帮助!!!

    更多相关内容
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼#includeusing namespace std;const int MaxSize=10;templateclass LinkList{public:LinkList();LinkList(DataType a[],int n);~LinkList();int Length();...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    #include

    using namespace std;

    const int MaxSize=10;

    template

    class LinkList

    {

    public:

    LinkList();

    LinkList(DataType a[],int n);

    ~LinkList();

    int Length();

    DataType Get(int i);

    int Locate(DataType x);

    void Insert(int i,DataType x);

    DataType Delete(int i);

    void PrintList();

    private:

    LinkList*first;

    DataType data[MaxSize];

    };

    template

    LinkList*p;

    template

    LinkList::LinkList(DataType a[],int n)

    {

    first=new LinkList;

    first->next=NULL;

    for(int i=0;i

    {

    s=new LinkList;

    s->data[i];

    s->next=first->next;

    first->next=s;

    }

    }

    template

    void LinkList::PrintList()

    {

    p=first->next;

    while(p!=NULL)

    {

    cout<data;

    p=p->next;

    } }

    template

    int LinkList::Length()

    {

    p=first->next;

    int count=0;

    while(p!NULL)

    {

    p=p->next;

    count++;

    } return count;

    }

    template

    LinkList::Get(int i)

    {

    p=p->next;

    int count=1;

    while(p!=NULL&&count

    {

    p=p->next;

    count++;

    }

    if(p=+NULL) throw "查找不到该元素"

    else

    return p->data;

    }

    template

    void LinkList::Insert(int i,DataType x)

    {

    p=first;

    int count=0;

    while(p!=NULL&count

    {

    p=p->next;

    count++;

    }

    if(p==NULL) throw"出错";

    else

    {

    s=new LinkList;

    s->datd=x;

    s->next=p->next;

    p->next=s;

    }

    }

    template

    LinkList::LinkList()

    {

    first=new LinkList;

    first->next=NULL;

    }

    template

    DataType LinkList::Delete(int i)

    {

    LinkList*q;

    int x;

    p=first;

    int count=0;

    while(p!=NULL&&count

    {

    p=p->next;

    count++;

    }

    if(p==NULL||p->next==NULL)

    {

    throw"error";

    }

    else

    {

    q=p->next;

    x=q->data;

    q->next=p->next;

    delete q;

    return x;

    } }

    template

    LinkList::~LinkList()

    {

    LinkList*q;

    while(first!=NULL)

    {

    q=first;

    first=first->next;

    delete q;

    }

    }

    int main()

    {

    LinkList*iptr;

    int a[10];

    cout<

    {

    cin>>a[i];

    }

    int size;

    size=sizeof(a)/sizeof(int); iptr.LinkList(a,size);

    int j;

    cout<

    cin>>j;

    cout<Get(j)<

    int d;

    cout<

    cin>>d;

    cout<Delete(d)<

    int k;

    int e;

    cout<

    cin>>k>>e;

    iptr.Insert(k,e);

    cout<

    p.~LinkList();

    cout<

    p.PrintList();

    return 0;

    }

    自己慢慢看

    展开全文
  • 怎样对数组进行交集并集运算

    千次阅读 2018-01-10 11:35:09
    以下不代表最优解,只是在学习中突然想到要怎么对数组进行交集并集运算 所以在自己尝试写了一遍后记录下来。数组的并集给定两个数组: int[] a = {1, 2, 3, 4, 5}; int[] b = {2, 3, 5, 6, 7}; 输出: 1,2,...

    以下不代表最优解,只是在学习中突然想到要怎么对数组进行交集与并集的运算
    所以在自己尝试写了一遍后记录下来。

    数组的并集

    给定两个数组:
    int[] a = {1, 2, 3, 4, 5};
    int[] b = {2, 3, 5, 6, 7};
    输出:
    1,2,3,4,5,6,7

    我的思路:
    两个数组的交集第一时间想到的肯定是最简单的两两比较,如果相等就加进新数组,但是这样做会造成时间的大量浪费,如果两个长度各1W的数组,比较完的时间….不可想象。
    然后马上就想到Java的HashSet,重复不添加,所以把所有的数组遍历进Set,再遍历Set岂不是就完成了。
    于是很容易实现了我的代码:

            int[] a = {1, 2, 3, 4, 5};
            int[] b = {2, 3, 5, 6, 7};
            HashSet<Integer> hashSet = new HashSet<>();
            for (int aNum : a) {
                hashSet.add(aNum);
            }
            for (int bNum : b) {
                hashSet.add(bNum);
            }
            Iterator<Integer> iterator = hashSet.iterator();
            while(iterator.hasNext()){
                System.out.print(iterator.next()+" ");
            }

    数组的交集

    给定两个数组:
    int[] a = {1, 2, 3, 4, 5};
    int[] b = {2, 3, 5, 6, 7};
    输出:
    3,4,5

    我的思路:与之前相同,强行跑遍历的算法肯定是不可取的,又想到了之前在一堆有重复数的数组中找出唯一一个没有重复的算法:
    一是看到的最优解对自身进行^运算。
    二是自己思考出的通过HashMap对每个数进行个数统计,如果为1则得出。

    同理得出此处交集的运算规则,统计每一个数的出现次数,如果为2,则是交集。
    以下为代码实现:

            int[] a = {1, 2, 3, 4, 5};
            int[] b = {2, 3, 5, 6, 7};
            HashMap<Integer, Integer> hashMap = new HashMap(16);
            for (int i = 0; i < a.length; i++) {
                if (hashMap.get(a[i]) != null) {
                    hashMap.put(a[i], hashMap.get(a[i]) + 1);
                } else {
                    hashMap.put(a[i], 1);
                }
            }
            for (int i = 0; i < b.length; i++) {
                if (hashMap.get(b[i]) != null) {
                    hashMap.put(b[i], hashMap.get(b[i]) + 1);
                } else {
                    hashMap.put(b[i], 1);
                }
            }
            for (int i : hashMap.keySet()) {
                if (hashMap.get(i).equals(2)) {
                    System.out.print(i+" ");
                }
            }
        }

    如有更优解或解题思路出错,感谢指出!

    展开全文
  • 假设有集合AB,AB中都存在的公共元素的集合称为这两个集合的交集 (以后的理论部分省略“假设”,默认存在集合AB) 并集 AB中的所有元素(不包含重复的元素)的集合称为这两个集合的并集 代码如下: #...

    交集

    假设有集合A和B,A和B中都存在的公共元素的集合称为这两个集合的交集

    (以后的理论部分省略“假设”,默认存在集合A和B)

    并集

    A和B中的所有元素(不包含重复的元素)的集合称为这两个集合的并集

    代码如下:

    (以后的代码中的数据全部写死)

    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    
    int main() {
        int array1[5] = {1, 2, 3, 4, 5};
        int array2[5] = {2, 3, 7, 8, 9};
    
        // 计算交集
        int array3[5] = {0};
        int arr3_len = 0;
        for (int i = 0; i < 5; ++i) {
            for (int j = 0; j < 5; ++j) {
                if (array1[i] == array2[j]) {
                    array3[arr3_len] = array1[i];
                    ++arr3_len;
                    break;
                }
            }
        }
        printf("交集:[");
        bool is_first = true;
        for (int i = 0; i < arr3_len; ++i) {
            if (is_first == true) {
                printf("%d", array3[i]);
                is_first = false;
            } else {
                printf(", %d", array3[i]);
            }
        }
        printf("]\n");
    
        // 计算并集
        int array4[10] = {0};
        int arr4_len = 0;
        for (int i = 0; i < 5; ++i) {
            array4[i] = array1[i];
            ++arr4_len;
        }
        bool is_exist = false;
        for (int i = 0; i < 5; ++i) {
            for (int j = 0; j < arr4_len; ++j) {
                if (array2[i] == array4[j]) {
                    is_exist = true;
                    break;
                }
            }
            if (is_exist == false) {
                array4[arr4_len] = array2[i];
                ++arr4_len;
            } else {
                is_exist = false;
            }
        }
        printf("并集:[");
        is_first = true;
        for (int i = 0; i < arr4_len; ++i) {
            if (is_first == true) {
                printf("%d", array4[i]);
                is_first = false;
            } else {
                printf(", %d", array4[i]);
            }
        }
        printf("]\n");
    
        return 0;
    }
    

     

    展开全文
  • ”符号,进行并集运算时使用“|”符号,进行差集运算时使用“-”符号,进行对称差集运算时使用“^”符号。 场景模拟:某大学的学生选课系统,学生选课完毕后,老师要对选课结果进行统计。这时,需要知道哪些学生既...
  • 求两个集合的交集和并集

    千次阅读 2020-02-21 23:27:27
    1、排序+双指针 交集: 用两个“指针”分别指向两个数组的头部。如果其中一个元素比另一个小,后移小的那个数组的指针;... public List intersection(int[] a, int[] b){//ab已经排好序 List<Integer>...
  • 使用C/C++实现集合的交集并集、补集运算 不墨迹,直接上代码,祝大家学习愉快。 #include<stdio.h> #define MAX1 5 #define MAX2 4 void display(int a[],int n)//输出数组元素 { printf("\n"); for(int...
  • AB的并集是将AB的元素放到一起构成的新集合。给定集合A,B,定义运算∪如下:A∪B = {e|e∈A 或 e∈B}。A∪B称为AB的并集交集 一个新的集合也可以通过两个集合"共"有的元素来构造。AB的交集,写作A∩B,...
  • 交集运算符 空格,可以是 EXCEL交集运算符 =G16:G18 G18:G20=G18得内容 如果两者没有交集会返回空! SUM(G10:G12 I10:I12) =#NULL!或 G10:G12 I10:I12=#NULL!...并集呢 也不能用VBA的 union()
  • 理解两个集合交集并集的概念性质 求两个集合的交集并集常用方法-——数轴法图示法. 观察集合A,B,C元素间的关系: A={4,5,6,8} ,B={3,5,7,8} ,C={3,4,5,6,7,8} A={x|x是有理数},B={x|x是...
  • 利用带头结点的单链表实现两个集合的并、交、差运算。(难易程度:低) [实验目的] 1、掌握线性表的链表存储结构。 2、掌握在单链表上基本操作的实现。...4、要求不改变原来的集合,并集交集和差集分别另外存放。
  • 实现单链表的并集交集的程序,程序首先由用户指定输入两个任意长短的单链表,然后程序将这两个单链表的并集和交集求出来并显示。程序里面包含了单链表的头插法尾插法两种操作。
  • 求单链表的交集和并集

    千次阅读 2022-03-19 10:25:47
    求单链表的交集和并集
  • 本文实例讲述了python获得两个数组交集并集、差集的房部分。分享给大家供大家参考。具体如下: 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]...
  • 集合交集并集,差集运算

    千次阅读 2019-07-01 18:52:53
    并集操作有个问题,相同的元素会重复添加进来。可以先差集,再并集 public static void main(String[] args) { List<User> a = new ArrayList(); a.add(new User(1L, 1L)); a.add(new User(2L, 2L)); List...
  • 目录----------前言------------交集和并集的符号巧记基本初等函数 ----------前言------------ 因为高中数学没学好,带有些主观看法 总是记忆混淆 交集和并集,最近在准备升本考试,这些逃不过去了,从容面对一下,...
  • /********************************************************function: 使用单链表作为数据结构求2个集合的交集和并集programmer: LiCuixia@安师数计学院12软件helper:LiuMenglu@安师数计学院12软件data: 2014.2.26...
  • 集合这种数据类型我们数学中所学的集合很是相似,数学中堆积的操作也有交集并集和差集操作,python集合也是一样。
  • 分别输出两个数组的交集和并集 import java.util.*; public class Main { /** * 两个数组,分别输出它的交集和并集 */ public static void main(String[] args) { int[] arr1 = {1,5,2,4,8,7}; int[] arr2 = {...
  • C数据结构——链表求交集并集

    千次阅读 多人点赞 2017-03-29 22:54:08
    p3)//逻辑非运算(!),即当p3=NULL时,!p3=1,为真值(true),执行语句块,反之,当p3!=NULL时,!p3=0,为假值(false),不执行语句块  { s = (Link)malloc(sizeof(Node)); s->data = p2->data; s->next ...
  • 集合的运算(交集并集).pdf
  • 数据库 - 交集并集和补集

    千次阅读 2019-10-25 11:22:40
    交集并集和补集 更新时间:2019-10-09 16:52:19 编辑我的收藏 本文为您介绍UNION、UNOIN ALL、UNION DISTINCT并集,INTERSECT、INTERSECT ALL、INTERSECT DISTINCT交集,EXCEPT、EXCEPT ALL、EXCEPT DISTINCT补...
  • 集合的运算(交集并集).doc
  • Oracle中有并集交集、差集的3种运算 1. union : 得到两个查询结果的并集,并且自动去掉重复行,不会排序。  union all: 得到两个查询结果的并集,不会去掉重复行,也不会排序  2. intersect: 得到两个查询结果的...
  • 定义域是交集还是并集

    万次阅读 2020-12-20 23:20:27
    定义域是这两个函数的交集还是并集是交集。因为要满足定义域中任意x在y中都有一个唯一确定的值(而这个y是对于两个函数的y,如果是并集会导致某个... 交集和并集运算结果是集合,集合是表示定义域的方法 但是要注意的...
  • 1.并集运算 select name from test1 union [all] select name from test2; 使用union时,默认将对结果进行排序,union all则不1.并集运算select name from test1union [all]select name from test2;使用union时...
  • 集合的基本运算(交集并集).ppt
  • 通过Redis实现数据的交集并集、补集

    多人点赞 热门讨论 2022-05-15 16:46:08
    我们在本地有多个文本文件,每个文件里面存了很多的32位的字符串作为用户的唯一标识,每个用户存做一行,假如我们每天都有非常大规模的用户,这样我们可能在工作中就存在需要对这些用户进行交集并集或补集等处理,...
  • 主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、集合的对称差集、集合的交集运算方法、集合的并集运算方法、集合的差集运算方法、集合的对称差集运算方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,169
精华内容 13,667
关键字:

交集和并集的运算