欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java-找到集合之间的元素之异同算法

程序员文章站 2022-05-15 10:23:12
...

package test;

public class test {
    private char[]sa,sb;
    private byte[] biaozhi;   
 /**
  * @param args
  */
    public test(char[] x,char[] y){
     sa=x;
     sb=y;
    }
    public void cao(){
     //0-表示2个集合都没有涉及到的元素,1-表示2个集合的交集,2-表示只属于集合x或集合y
     //假设元素均为小写,设全集是a-z的小写字母
     String[] result=null;
     biaozhi=new byte[26];
     for (int i=0;i<biaozhi.length;i++ ){
      biaozhi[i]=0;
     }
     for (int i=0;i<sa.length;i++ ){
      biaozhi[(int)sa[i]-97]++;
     }
     for (int i=0;i<sb.length;i++ ){
      biaozhi[(int)sb[i]-97]++;
     }
     for (int i=0;i<biaozhi.length;i++ ){
      if (biaozhi[i]==0){
          System.out.println("2个集合都没有的元素");
       System.out.println((char)(i+97));
      }
      else if(biaozhi[i]==1){
          System.out.println("只存在其中1个集合的元素");
       System.out.println((char)(i+97));
      }
      else{
          System.out.println("2个集合都有的元素");
       System.out.println((char)(i+97));
      }      
     }
    }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
            test mytest=new test(new char[]{'a','b','e','w','f'},new char[]{'i','o','b','e','c','z','x'});
            mytest.cao();
 }

}
效果如下:

只存在其中1个集合的元素
a
2个集合都有的元素
b
只存在其中1个集合的元素
c
2个集合都没有的元素
d
2个集合都有的元素
e
只存在其中1个集合的元素
f
2个集合都没有的元素
g
2个集合都没有的元素
h
只存在其中1个集合的元素
i
2个集合都没有的元素
j
2个集合都没有的元素
k
2个集合都没有的元素
l
2个集合都没有的元素
m
2个集合都没有的元素
n
只存在其中1个集合的元素
o
2个集合都没有的元素
p
2个集合都没有的元素
q
2个集合都没有的元素
r
2个集合都没有的元素
s
2个集合都没有的元素
t
2个集合都没有的元素
u
2个集合都没有的元素
v
只存在其中1个集合的元素
w
只存在其中1个集合的元素
x
2个集合都没有的元素
y
只存在其中1个集合的元素
z