数组交集取反
方法一:
package com;
import java.util.ArrayList; import java.util.List;
public class test2 {
/** * @param args */
public static void main(String[] args) {
String arr1[] = new String[] { "1", "2", "3", "4", "5", "6", "7", "8" };
String arr2[] = new String[] { "4", "5", "6" };
List list = new ArrayList();
List list1 = new ArrayList();
for (int i = 0; i < arr1.length; i++) {
list1.add(arr1[i]);
}
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
if (arr1[i] == arr2[j]) {
for (int j2 = 0; j2 < list1.size(); j2++) {
if (list1.get(j2).equals(arr2[j]))
list1.remove(j2);
}
}
}
}
for (int i = 0; i < list1.size(); i++) { System.out.println(list1.get(i));
}
}
}
方法二:
package com;
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map;
public class test {
public static void main(String[] args) {
String[] arr1 = new String[] { "11111111111","22222222222","33333333333","44444444444"
,"55555555555","77777777777","66666666666" };
String[] arr2 = new String[] { "11111111111","22222222222","33333333333"};
String result;
result = init(arr1, arr2);
System.out.println(result);
}
public static String init(String[] arr1, String[] arr2) {
Map a = new HashMap();
Map b = new HashMap();
StringBuffer sb = new StringBuffer();
List newList = new ArrayList();
for (int i = 0; i < arr1.length; i++) {
a.put(i, arr1[i]);
}
for (int i = 0; i < arr2.length; i++) {
b.put(i, arr2[i]);
}
for (int i = 0; i < arr1.length; i++) {
if (!b.containsValue(arr1[i])) {
newList.add(arr1[i]);
}
}
Collections.sort(newList);
for (int i = 0; i < newList.size(); i++) {
sb.append(newList.get(i));
sb.append("_"); }
return sb.toString();
}
}
很久没写过这样的逻辑了。。。 感觉还不如当时入门的时候呢。。。

浙公网安备 33010602011771号