论坛首页 Java企业应用论坛

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

浏览 1603 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-19  

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

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics