当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 编程基础
分享到: 
收藏 +0
1
用java求“交、叉、并集”原来这么简单
标签: Java

代码片段(1) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [全屏预览]

package test;

import java.util.HashSet;
import java.util.Set;

public class Test {
	
	public static void main(String[] args) {
		Set<Integer> result = new HashSet<Integer>();
		Set<Integer> set1 = new HashSet<Integer>(){{
			add(1);
			add(3);
			add(5);
		}};
		
		Set<Integer> set2 = new HashSet<Integer>(){{
			add(1);
			add(2);
			add(3);
		}};
		
		result.clear();
		result.addAll(set1);
		result.retainAll(set2);
		System.out.println("交集:"+result);
		
		result.clear();
		result.addAll(set1);
		result.removeAll(set2);
		System.out.println("差集:"+result);
		
		result.clear();
		result.addAll(set1);
		result.addAll(set2);
		System.out.println("并集:"+result);
		
	}

}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(11)

  • 1楼:whaon 发表于 2011-04-25 15:01 回复此评论
    java对一些数据结构包装的很好
  • 2楼:静风流云 发表于 2011-04-26 23:33 回复此评论
    学习了,只用过Set实现交集。
  • 3楼:laserdance 发表于 2011-04-28 17:58 回复此评论
    http://my.oschina.net/laserdance/blog/15629在我这里的面试题集锦
  • 4楼:wsqzz 发表于 2011-05-15 14:39 回复此评论
    学习了,对象集合可以吗
  • 5楼:damooo 发表于 2011-05-29 08:36 回复此评论

    引用来自“wsqzz”的评论

    学习了,对象集合可以吗
    对象集合复写equals方法后也可以用。
  • 6楼:cxfpeter 发表于 2011-08-09 22:15 回复此评论
    重写equals方法要小心。
  • 7楼:山药 发表于 2011-08-22 15:20 回复此评论
    嗯不错。。、
  • 8楼:_bill 发表于 2011-10-01 21:25 回复此评论
    学习一下,谢谢
  • 9楼:yochance 发表于 2012-01-12 13:15 回复此评论

    谢谢,有借鉴意义。但是对于大量集合,而且要开发成web 程序, 是否还可以这样?会不会内存不足?我将程序用于2000000个整数求交集,反应比较慢了。再多,还会内存不足:

    Set<Integer> set1 = new HashSet<Integer>(){{
      for(int i=0;i<10000000;i++){add(i);}}

    Set<Integer> set2 = new HashSet<Integer>(){{
    for(int i=9999999;i<20000000;i++){add(i);}
    }};

  • 10楼:迪拜驻开源中国大使 发表于 2016-10-17 18:53 回复此评论
    差集对么 ?
  • 11楼:K1W1 发表于 2017-10-16 15:54 回复此评论

    引用来自“红豆面包”的评论

    差集对么 ?
    差集不对,按这种方法要算两遍,先包含a减去b得到a有b没有,再包含b减去a得到b有a没有。guava的Sets.different也有这种问题