我有8个数组,每个数组里的数据约1000条左右,现要找出这8个数组中相同元素个数大于等于2的所有结果,这该如何比对啊?求教!

解决方案 »

  1.   

    直接hash吧
    不过数据量这么小
    排序也不见得有多慢
      

  2.   


    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;public class Csdn { private static Set<Long> set = new HashSet<Long>(); private static List<Long> res = new ArrayList<Long>(); /**
     * @param args
     */
    public static void main(String[] args) { long[] no1 = { 1, 2, 3, 4, 5 };
    long[] no2 = { 2, 33, 44, 55, 66 };
    long[] no3 = { 1, 432, 334, 44, 442 }; set(no1);
    set(no2);
    set(no3);
    print();
    } private static void set(long[] nos) {
    for (int i = 0; i < nos.length; i++) {
    if (!set.add(nos[i])) {
    res.add(nos[i]);
    }
    }
    } private static void print() {
    for (Long l : res) {
    System.out.println(l);
    }
    }
    }