java中如何写函数实现返回所有包含于a数组但不包含于b数组的元素

急急急,直接代码,不要其他了,3Q!!!

import java.util.ArrayList;


public class ArrayOperation {
public static int[] arraySubtract(int[] array1, int[] array2) {
ArrayList<Integer> list = new ArrayList<Integer>();
//选出属于数组1但不属于数组2的元素
for(int i = 0; i < array1.length; ++i) {
boolean bContained = false;
for(int j = 0; j < array2.length; ++j) {
if (array1[i] == array2[j]) {
bContained = true;
break;
}
}
if (!bContained) {
list.add(array1[i]);
}
}

int res[] = new int[list.size()];
for(int i = 0; i < list.size(); ++i)
res[i] = list.get(i);
return res;
}
    public static void main(String args[]) {
     int[] array1 = new int[]{1, 2, 3, 4, 5, 6, 7};
     int[] array2 = new int[]{2, 4, 6};
     //计算两个数组的差
     int[] res = arraySubtract(array1, array2);
     //打印结果
     for(int i = 0; i < res.length; ++i) {
     System.out.print(res[i] +" ");
     }
     System.out.println();
    }
}

运行效果截图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-20
import java.util.ArrayList;

import java.util.Arrays;

public class Test {
public static void main(String args[]) {
String[] a = {"1","3","4","5"};
String[] b = {"3","1","2"};
ArrayList c = new ArrayList();
Arrays.sort(a); //排序
Arrays.sort(b); //排序

int bIndex = 0; //数组b的初始下标
for(int i = 0; i < a.length; i++) { //i是数组a的下标
if(bIndex == b.length) { //如果数组b没有元素
c.add(a[i]);
}
else if(a[i] == b[bIndex]) { //如果元素相等,a和b的下标都往后移一位
bIndex++;
}
else if(a[i].compareTo(b[bIndex]) > 0) { //如果a数组中元素比b数组中元素大
bIndex++; //b下标往后移一位。
i--; //下一轮比较a数组中该元素与b数组下一个元素,由于循环结束时i要自增1,因此这个地方i要减1
}
else {
c.add(a[i]); //如果a数组中元素比b数组元素小,将这个元素加入到c中。
}
}

System.out.println(c);
}
}
第2个回答  2013-08-20
public static void main(String[] args)
{
final String [] a = {"1", "2" ,"3"};
final String [] b = {"4", "2" ,"5"};

List<String> ret = new ArrayList<String>();

for (String each : args)
{
for (String i : a)
{
if (i.equals(each))
{
for (String i2 : b)
{
if (!i2.equals(each))
{
ret.add(each);
}
}
}
}
}

System.out.println("符合要求的 : " + ret);
}
第3个回答  2013-08-20
双循环,判断,放第3个数组,然后返回这个数组
相似回答