如何在java中检查不是在array1中而是在array2中的值



我遇到了一个问题,我需要找到array1中不存在的数组元素,但使用java在array2中存在。与SQL不同,在SQL中,人们可以直接使用命令"像";或";不像";,在java中,您可能需要从头开始构建程序。虽然,一个简单的程序,它只是工作。欢迎更多的解决方案!

String[] colours = { "black", "red", "white", "yellow","magenta","mahogini"};
String[] colours2 = { "black", "red","orange","yellow","Yellow","pink","purple","indigo","nuque" };
ArrayList<String> coloursExist = new ArrayList<String>();
ArrayList<String> coloursDoNotExist = new ArrayList<String>();

int unmatch=0;
int max_length= colours.length;
for (int i = 0; i < colours2.length; i++) {
for (int j = 0; j < colours.length; j++) {
if (colours[j].contains(colours2[i])) {
// System.out.println(colours2[i]+" exists in colours");
coloursExist.add(colours2[i]);
break;
}

unmatch++;
if (unmatch==max_length) {
coloursDoNotExist.add(colours2[i]);

}
}//end of inner for loop
unmatch=0;
}//end of for loop

结果:

[black, red, yellow]
[orange, Yellow, pink, purple, indigo, nuque]

使用ListremoveAll()方法,它就像一个集合相对补码:

String[] colours = { "black", "red", "white", "yellow","magenta","mahogini"};
String[] colours2 = { "black", "red","orange","yellow","Yellow","pink","purple","indigo","nuque" };
List<String> list = new ArrayList<>(Arrays.asList(colours2));
list.removeAll(Arrays.asList(colours));
System.out.println(list);

输出

[orange, Yellow, pink, purple, indigo, nuque]

您可以使用内置方法List.removeAllList.retainAll实现相同的效果

String[] colours = {"black", "red", "white", "yellow", "magenta", "mahogini"};
String[] colours2 = {"black", "red", "orange", "yellow", "Yellow", "pink", "purple", "indigo", "nuque"};
List<String> colList = Arrays.asList(colours);
List<String> col2List = Arrays.asList(colours2);
List<String> coloursExist = new ArrayList<>(colList);
coloursExist.retainAll(col2List);
List<String> coloursDoNotExist = new ArrayList<>(col2List);
coloursDoNotExist.removeAll(colList);
System.out.println(coloursExist); // [black, red, yellow]
System.out.println(coloursDoNotExist); //[orange, Yellow, pink, purple, indigo, nuque]

希望这有帮助:

import java.util.*;  
public class Main {

public static void main(String[] args) {
String[] colours = { "black", "red", "white", "yellow","magenta","mahogini"};
String[] colours2 = { "black", "red","orange","yellow","Yellow","pink","purple","indigo","nuque" };

ArrayList<String> coloursList1 = new ArrayList(Arrays.asList(colours));
ArrayList<String> coloursList2 = new ArrayList(Arrays.asList(colours2));

ArrayList<String> tempColoursList1 = new ArrayList(Arrays.asList(colours));
ArrayList<String> tempColoursList2 = new ArrayList(Arrays.asList(colours2));
tempColoursList2.removeAll(tempColoursList1);
System.out.println("Uncommon elements : " + tempColoursList2);
coloursList1.retainAll(coloursList2);
System.out.println("Common elements   : " + coloursList1);
}
}

输出

Uncommon elements : [orange, Yellow, pink, purple, indigo, nuque]                                                                                           
Common elements   : [black, red, yellow] 

最新更新