public static void main(String[] args) { String[] a = { "1", "2", "3" }; String[] b = { "3", "4", "5" }; Set<String> s1 = new HashSet<String>(); for (String s : a) { s1.add(s); } Set<String> s2 = new HashSet<String>(); for (String s : b) { s2.add(s); } s1.removeAll(s2); // 去掉s1里面任何s2包含的东西
for(String s : s1) { System.out.println(s); } } boolean removeAll(Collection<?> c) 移除 set 中那些包含在指定 collection 中的元素(可选操作)。如果指定的 collection 也是一个 set,则此操作会实际修改此 set,这样其值是两个 set 的一个不对称差集。
import java.util.Arrays; import java.util.List;/* * @功能描述:判断是否存在,分别遍历两个数组,如果存在,打印出来 * @author sundful * */ public class ArrayTest {
List data1 = Arrays.asList(a);
List data2 = Arrays.asList(b);用三个ArrayList保存判断的结果(对应与上边的,{1,2},{3},{4,5})
list1,list2,list3
//处理a中的有,b没有的数据和a,b中都有的数据
for(int i=0,i<a.length;i++)
{
if(data2.indexOf(a[i])!=-1)//表示a中的存在于b中
{
list2.add(a[i]);//list2表示a中存在于b中的元素的集合
}else
{
list1.add(a[i]);
}
}for(int i=0;i<b.length;i++)
{
if(data1.indexOf(b[i]))
{
list3.add(b[i]);
}
}list1中的数据表示是a中有,而b中没有的
list2中的数据表示是a,b中都有的
list3中的数据表示b中有,而a中没有的.估计不会打印ArrayList中的数据.上网查一下如果显示ArrayList中的数据吧
import java.util.*;
class ShuZuDemo{
public static void main(String[] args){
String a[] = {"1","2","3","6","8","0"};
String b[] = {"3","4","5","8","9"};
List data1 = Arrays.asList(a);
List data2 = Arrays.asList(b);
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
for(int i=0;i <a.length;i++)
{
if(data2.indexOf(a[i])!=-1)//表示a中的存在于b中
{
list2.add(a[i]);//list2表示a中存在于b中的元素的集合
}else
{
list1.add(a[i]);
}
} for(int i=0;i <b.length;i++)
{
if(data1.indexOf(b[i])==-1)
{
list3.add(b[i]);
}
}
System.out.print("在数组a中");
print(list2);
System.out.println("存在于数组b中");
System.out.print("在数组a中");
print(list1);
System.out.println("在于b数组中不存在");
System.out.print("在数组b中");
print(list3);
System.out.println("在于a数组中不存在");
}
public static void print(List list){
Iterator it=list.iterator();
while(it.hasNext()){
System.out.print(it.next()+",");
}
}
}
String[] a = { "1", "2", "3" };
String[] b = { "3", "4", "5" };
Set<String> s1 = new HashSet<String>();
for (String s : a) {
s1.add(s);
}
Set<String> s2 = new HashSet<String>();
for (String s : b) {
s2.add(s);
} s1.removeAll(s2); // 去掉s1里面任何s2包含的东西
for(String s : s1) {
System.out.println(s);
}
}
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素(可选操作)。如果指定的 collection 也是一个 set,则此操作会实际修改此 set,这样其值是两个 set 的一个不对称差集。
import java.util.Arrays;
import java.util.List;/*
* @功能描述:判断是否存在,分别遍历两个数组,如果存在,打印出来
* @author sundful
*
*/
public class ArrayTest {
public static void main(String[] args) {
String[] a={"1","2","3"};
String[] b={"3","4","5"};
List list1=Arrays.asList(a);
List list2=Arrays.asList(b);
for(Object s : list1)
{
if(list2.indexOf(s)!=-1)
{
System.out.println(s+"存在于数组b中");
}else{
System.out.println(s+"不存在于数组b中");
}
}
for(Object s : list2)
{
if(list1.indexOf(s)!=-1)
{
System.out.println(s+"存在于数组a中");
}else{
System.out.println(s+"不存在于数组a中");
}
}
}
}