随笔-42  评论-42  文章-0  trackbacks-0
User[] a;
User[] b;
/*
a,b 赋值
*/



//将a,b转换成Set型,这里转换a,b的方法不同
List<User> aList=Arrays.asList(a);
Set
<User> aSet=new HashSet<User>();
aSet.addAll(aList);

Set
<User> bSet=new HashSet<user>();
for(User u:b){
  bSet.add(u);
}


//求子集
bSet.removeAll(aSet);

return bSet;

  这里先用到了Arrays的静态方法asList();(Arrays与Array的关系,参照Collection与Collections的关系)。
  再用到了Set 的removeAll(Conllection<?> c) ,这个方法的返回值是boolean型,移除 set 中那些包含在指定 collection 中的元素(可选操作)。如果指定的 collection 也是一个 set,则此操作会实际修改此 set,这样其值是两个 set 的一个不对称差集。(java API)
posted on 2008-07-01 18:29 BlueSunshine 阅读(869) 评论(2)  编辑  收藏 所属分类: 学习心得

评论:
# re: 同类型数组a,b, a为b的子集,求出a的补集 2009-09-21 14:45 | *
BitSet bs = new BitSet();

int[] b = { 1, 2, 3, 4, 5 };

int[] a = { 1, 4 };

for (int i : a) {
bs.set(i);
}

for (int i : b) {
if (bs.get(i) == false)
System.out.println(i);
}  回复  更多评论
  
# 编写程序,实现集合的子集判定,即如果A是B的子集则返回真,否则返回假。集合用栈实现,要求只能用栈的基本操作,不能通过下标遍历栈中的元素。集合元素可限定为整型。如果需要,可使用普通变量或另外的栈辅助。 2012-11-27 13:10 | 李志雄
。。。。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: