2 回答
TA贡献1799条经验 获得超8个赞
我已经实现了 compareArrays 方法来处理你的场景尝试像下面这样可能会解决你的问题
public class Test
{
public static void main(String[] args){
compareArrays(new String[]{"Test1", "Test2", "Test3"},new String[]{"Test1", "Test2", "Test3"});
compareArrays(new String[]{"Test1", "Test2", "Test3"},new String[]{"Test1", "Test2", "Test4"});
compareArrays(new String[]{"Test1", "Test2", "Test3"},new String[]{"Test1", "Test2"});
compareArrays(new String[]{"Test1", "Test2"},new String[]{"Test1", "Test2", "Test3"});
}
private static void compareArrays(String[] test,String[] test2){
if(test.length > test2.length){
System.out.println("Scenario 3");
}
else if(test2.length > test.length){
System.out.println("Scenario 4");
}
else {
boolean same = true;
for (int a=0;a<test.length;a++){
if(!test[a].equalsIgnoreCase(test2[a])){
same = false;
}
}
if (same){
System.out.println("Scenario 1");
}
else {
System.out.println("Scenario 2");
}
}
}
}
TA贡献1802条经验 获得超10个赞
使用布尔数组来跟踪重复的字符串,只需检查一个数组的所有元素以查看另一个数组是否包含它。第二个数组的未使用字符串在第一个数组中也丢失,因此无论数组大小如何,您都可以将它们放在差异上。
String[] array1;
String[] array2;
ArrayList<String> diff = compare_arrays(array1, array2);
public ArrayList<String> compare_arrays(String[] a1, String[] a2){
ArrayList<String> diff = new ArrayList<String>();
boolean[] rep = new boolean[a2.length];
Arrays.fill(a2, false);
for(String str : a1){
if(!Arrays.asList(a2).contains(str)){
diff.add(str);
}
else{
rep[Arrays.asList(a2).indexOf(str)] = true;
}
}
for(int i = 0; i < a2.length; i++){
if(!rep[i]){
diff.add(a2[i]);
}
}
}
添加回答
举报