java 并集 数组/集合 有重复元素需 保留(急)

已知数组 : String[] a = {"1","ab","ab","3"};
String[] b = { "ab", "3","4","4"};

求并集结果: {"1","ab","ab","3","4","4"};
如:
String[] a = {"1","ab","ab","3"};
String[] b = {"ab","ab","ab", "3","4","4"};
String[] d = {"d","ab","3", "3","3","4", "xc"};
String[] e = {"ab","ab","ab", "3","4","4","4"};

想要的结果 : {"ab","ab","ab", "3","3","3","4","4","4","xc"}

双重循环遍历就可以了,将b中所有的数在a中遍历一遍

public static void main (String[] args) {
    String[] a = {"1","ab","ab","3"};
    String[] b = {"ab", "3","4","4"};  
    List<String> c = new ArrayList<String>();
    
    for (int i = 0; i < a.size(); ++ i) {
        c.add(a[i]);
    }
    
    for (int i = 0; i < b.size(); ++ i) {
        Boolean bFlag = true;
        for (int j = 0; j < a.size(); ++ j) {
            if (b[i] == a[j]) {
                bFlag = false;
                break;
            }
        }
        if (bFlag) {
            c.add(b[i]);        
        }
    }
 }

追问

谢谢,没能从根本上解决我的问题,不过也提供了一种思路。
事实上我的问题比这个复杂 : 有多个List集合,里面的元素个数和是否重复,重复一次或多次(重复指每一个集合内部元素重复和集合之间的元素重复)都是不确定的,需要记录这些List的一个元素做成这样一个集合:i. 包含了所有不重复的元素;ii. 包含了所有重复的元素且这个重复的记录是在某一个集合里面重复次数最多的那个记录。

追答

那可能是要麻烦一些,但是按照这个思路还是可以做的,两两比较,再加个map集合,有重复的,往map里加,前面是数,后面的次数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-31
自己写一个for循环, 把两个数组都遍历出来,往第三个数组里放,然后做判断,如果a或者b里的某一组数据的值和第三个数组里的相同,就不放
第2个回答  2013-05-31
你这是因为第一个组里面有两个“ab”第二个有两个"4",他并的时候不替换同一个组里的元素,只对比两个组。追问

求方法

追答

用楼下的方法就可以了,重新建立一个空组,把a,b分别往里面写,用for方法,有重复的就next到下一个就可以了

第3个回答  2017-12-02
数组中有size()方法?逗我呢?
相似回答