Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找数组中不匹配的元素_Java_Arrays - Fatal编程技术网

Java 查找数组中不匹配的元素

Java 查找数组中不匹配的元素,java,arrays,Java,Arrays,我有一个任务:找到两个数组中不匹配的元素并将它们移动到第三个数组中。我知道如何查找匹配的元素,但如何查找不匹配的元素?以下是我的匹配元素代码: String[] = first_arr = {"Den", "Michel", "Dana", "Sophie" "Clar" }; String[] = sec_arr = {"Michel", "Sophie", "Clar" }; String[] = res_arr = new String[first_arr.-length]; Int

我有一个任务:找到两个数组中不匹配的元素并将它们移动到第三个数组中。我知道如何查找匹配的元素,但如何查找不匹配的元素?以下是我的匹配元素代码:

String[] = first_arr = {"Den", "Michel", "Dana", "Sophie" "Clar" }; 
String[] = sec_arr = {"Michel", "Sophie", "Clar" };
String[] = res_arr = new String[first_arr.-length];

Int count = 0;

For(int i=0; i<first_arr.length; i++) {
  for(int j=0; i<sec_arr.length; i++){
       if(first_arr[i].equals(sec_arr[i])) {
             res_arr[count++] = first_arr[i];
       }
   } 
} 
String[]=first_arr={“Den”、“Michel”、“Dana”、“Sophie”、“Clar};
字符串[]=sec_arr={“Michel”、“Sophie”、“Clar”};
字符串[]=res_arr=新字符串[first_arr.-length];
整数计数=0;

对于(inti=0;i我假设您希望在两个不同的数组中找到唯一的元素。 可以使用集合方法查找唯一的元素

List<String> list1 = Arrays.asList("a","b","c","d");
List<String> list2 = Arrays.asList("a","c");
Set<String> both = new HashSet<String>(list1);
both.addAll(list2);
Set<String> common = new HashSet<String>(list1);
common.retainAll(list2);
both.removeAll(common);
for (String s : both) {
    System.out.println(s);
}
list1=Arrays.asList(“a”、“b”、“c”、“d”);
list2=Arrays.asList(“a”、“c”);
Set both=新的HashSet(列表1);
都是。addAll(列表2);
Set common=新的HashSet(列表1);
普通。保留(列表2);
两者。移除全部(普通);
for(字符串s:两者){
系统输出打印项次;
}

不使用任何类或外部方法,这将是一个有效的解决方案:

    String[] first_arr = {"Den", "Michel", "Dana", "Sophie", "Clar"};
    String[] sec_arr = {"Michel", "Sophie", "Clar"};
    String[] temp_arr = new String[first_arr.length + sec_arr.length];
    int count = 0;

    for (int i = 0; i < first_arr.length; i++) {
        boolean contains = false;

        for (int j = 0; j < sec_arr.length; j++) {
            if (first_arr[i].equals(sec_arr[j])) {
                contains = true;
                break;
            }
        }

        if (!contains) {
            temp_arr[count++] = first_arr[i];
        }
    }

    for (int i = 0; i < sec_arr.length; i++) {
        boolean contains = false;

        for (int j = 0; j < first_arr.length; j++) {
            if (sec_arr[i].equals(first_arr[j])) {
                contains = true;
                break;
            }
        }

        if (!contains) {
            temp_arr[count++] = sec_arr[i];
        }
    }

    String[] res_arr = new String[count];
    for (int i = 0; i < count; i++) {
        res_arr[i] = temp_arr[i];
    }
String[]first_arr={“Den”、“Michel”、“Dana”、“Sophie”、“Clar”};
字符串[]sec_arr={“Michel”、“Sophie”、“Clar”};
字符串[]临时数组=新字符串[第一个数组长度+第二个数组长度];
整数计数=0;
for(int i=0;i
但沙尚克提到的收集方法很可能是未来的发展方向


EDIT只是做了一些快速测试和测试(总是相同的名称,5个和4个名称),它说不使用类和其他方法平均快20倍(100次迭代)。不是很可靠的测试,但我很好奇有多大的区别。

第一个问题是,在这种情况下,什么是
不匹配
?第二个问题是,您的代码不会编译,因为存在
int
而不是
int