杂谈记录——利用set求交集

Posted 唐 昊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杂谈记录——利用set求交集相关的知识,希望对你有一定的参考价值。

关键字 retainAll

package com.qqq.cc;

import java.util.*;

public class TestSetMixed 
    public static void main(String[] args) 
        Set<Tm> set = new HashSet<>();
        Set<Tm> set1 = new HashSet<>();
        Set<Tm> set2 = new HashSet<>();
        Set<Tm> set3 = new HashSet<>();

        Tm as = new Tm(1, "as");
        Tm a1 = new Tm(2, "as");
        Tm a2 = new Tm(3, "as");

        set1.add(as);
        set2.add(as);
        set3.add(as);

        set.addAll(set1.size()>0?set1:set2.size()>0?set2:set3);

        if(set1.size() > 0 )
            set.retainAll(set1);
        
        if(set2.size() > 0 )
            set.retainAll(set2);
        
        if(set3.size() > 0 )
            set.retainAll(set3);
        

        for (Tm tm : set) 
            System.out.println(tm);
        



    

    public void check(Set<String> set)


class Tm
    int index;
    String val;

    public Tm(int a,String b)
        this.index = a;
        this.val = b;
    

    @Override
    public boolean equals(Object o) 
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Tm tm = (Tm) o;
        return index == tm.index;
    

    @Override
    public int hashCode() 
        return Objects.hash(index);
    

    @Override
    public String toString() 
        return "Tm" +
                "index=" + index +
                ", val='" + val + '\\'' +
                '';
    



Tmindex=1, val=‘as’

以上是关于杂谈记录——利用set求交集的主要内容,如果未能解决你的问题,请参考以下文章

UVALive 6911 Double Swords (Set,贪心,求区间交集)

杂谈记录——通过set判断一组数据是否重复

本人碰见一道C语言难题,寻大神帮助,利用C语言实现:求任意两个集合的交集、并集、差集,

利用go语言实现求数组交集的算法

求交集,差集,并集,善用java的set

POJ2443 Set Operation (基础bitset应用,求交集)