在java中我想选出这两个数组a=[1,2,3,4,5];b=[1,2,3,6,7]中的不同元素用boolean类型写,求各位大神帮助

就是两个数组中不同数组元素

你的需求描述的不清楚。需要猜。

--------------------------------

以下是代码,一个不太严谨的实现,凑活看看吧

package ex;

import java.util.Arrays;

public class ArrayCompare {

    // 只使用jdk的方法
    public static void main(String[] args) {
        int[] s1 = { 1, 2, 3, 4, 5, 7, 11, 34, 22, 44 };
        int[] s2 = { 1, 2, 3, 41, 6, 7, 10, 11, 22, 56, 22, 66, 7, 66 };

        // 获取s1中有的s2中没有的
        int[] r1 = arrayCompare(s1, s2);
        System.out.println(Arrays.toString(r1));

        // 获取s2中有的s1中没有的
        int[] r2 = arrayCompare(s2, s1);
        System.out.println(Arrays.toString(r2));

        // 两者合起来的不同元素即r1+r2
        int length = r1.length + r2.length;
        int[] r3 = new int[length];
        System.arraycopy(r1, 0, r3, 0, r1.length);
        System.arraycopy(r2, 0, r3, r1.length, r2.length);
        System.out.println(Arrays.toString(r3));
        System.exit(0);
    }

    // 返回一个数组,记录存在于a1但不存在于a2的元素
    public static int[] arrayCompare(int[] a1, int[] a2) {
        int length = a1.length > a2.length ? a1.length : a2.length;
        int[] ret = new int[length];
        int k = 0;
        //遍历对比,找出不存在于a2的元素放到ret中
        for (int i = 0; i < a1.length; i++) {
            boolean b = false;
            for (int j = 0; j < a2.length; j++) {
                if (a1[i] == a2[j]) {
                    b = true;
                    break;
                }
            }
            if (!b) {
                ret[k++] = a1[i];
            }
        }
        return Arrays.copyOf(ret, k);
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-30
就是要选出3、6、7这三个数吧用for循环里面在嵌套一个for 第一个for用来取出a数组里面的数,就是先取出a里面第一个数再和b里面所有数进行对比,对比完成再去a的第二个数,你说用boolean,boolean最后返回的是true和false,并不能返回你要选出的数吖追问

是5、6、7三个数

追答

噢噢,刚刚看错了,你要挑出那三个数,数据类型就应该是数组

相似回答