【Sets】使用Google Guava工程中Sets工具包,实现集合的并集/交集/补集/差集

时间:2023-01-10 10:00:05

获取两个txt文档的内容~存储进集合中求集合的并集/交集/补集/差集

 package com.sxd.readLines.aboutDB;

 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set; import com.google.common.collect.Sets; public class Test { /**
*
* @throws IOException
*/ @org.junit.Test
public void test1() throws IOException {
Set<String> set1 = readFile4List(new File("D:/B/1.txt"));
Set<String> set2 = readFile4List(new File("D:/B/DB.txt")); Set<String> result1 = Sets.union(set1, set2);//合集,并集
Set<String> result2 = Sets.intersection(set1, set2);//交集
Set<String> result3 = Sets.difference(set1, set2);//差集 1中有而2中没有的
Set<String> result4 = Sets.symmetricDifference(set1, set2);//相对差集 1中有2中没有 2中有1中没有的 取出来做结果 //可以分别把4种不同结果 写出文件 BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new File("d:/B/result.txt")));
bufferedWriter.write("共有:"+result1.size()+"条\r\n");
for (String string : result1) {
bufferedWriter.write(string+"\r\n");
}
bufferedWriter.close(); } public Set<String> readFile4List(File file) throws IOException{
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
Set<String> set = new HashSet<String>();
String str = null;
while((str =bufferedReader.readLine()) != null){
if(str.length() > 6){
set.add(str.substring(3));
}else{
set.add(str);
} }
return set;
} }

【Sets】使用Google Guava工程中Sets工具包,实现集合的并集/交集/补集/差集的更多相关文章

  1. JAVA中两个Set比较找出交集、差集、并集

    当做到某些功能的时候,使用Set能够快速方便地将需要的类型以集合类型保存在一个变量中,Set是最简单的一种集合,集合中的对象不按特定的方式排序,并且没有重复对象. //两个Set比较找出交集.差集.并 ...

  2. Google Guava

    公司用到了 Joiner  HashMultimap 等  都是属于Google Guava包中的东西 官方文档 http://ifeve.com/google-guava/ 有时间了整理一下

  3. Google Guava的5个鲜为人知的特性

    译文出处: 花名有孚   原文出处:takipi.com Google Guava有哪些比较冷门但却又实用的特性呢? 它是最流行的开源库之一,你应该听过它的大名,它诞生的地方正是人们举办真正的魁地奇比 ...

  4. &lbrack;Google Guava&rsqb; 2&period;3-强大的集合工具类:java&period;util&period;Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

  5. google guava工具包

    guava这个工具包里有好多有用的工具类 <dependency> <groupId>com.google.guava</groupId> <artifact ...

  6. 【Unity与Android】02-在Unity导出的Android工程中接入Google Admob广告

    我在上一篇文章 [Unity与Android]01-Unity与Android交互通信的简易实现) 中介绍了Unity与Android通讯的基本方法. 这一篇开始进入应用阶段,这次要介绍的是如何在An ...

  7. Google guava工具类的介绍和使用

    概述 工具类 就是封装平常用的方法,不需要你重复造*,节省开发人员时间,提高工作效率.谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来.所以就诞生了guava.. 高效设计良好的API ...

  8. &lbrack;Google Guava&rsqb; 4-函数式编程

    原文链接 译文链接 译者:沈义扬,校对:丁一 注意事项 截至JDK7,Java中也只能通过笨拙冗长的匿名类来达到近似函数式编程的效果.预计JDK8中会有所改变,但Guava现在就想给JDK5以上用户提 ...

  9. 使用 Google Guava 美化你的 Java 代码

    文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMP ...

随机推荐

  1. java 使用正则表达式过滤HTML中标签

    /** * 去掉文本中的html标签 * * @param inputString * @return */ public static String html2Text(String inputSt ...

  2. tp5 中 model 的删除方法

    根据主键删除(推荐) use app\index\model\User as UserModel; public function delete(){ UserModel::destroy([1,2, ...

  3. oracle建立数据库连接

    除了全库拷贝,这个应该是oracle两个数据库之间进行数据迁移最快的方法了. CREATE PUBLIC DATABASE LINK zhengshi CONNECT TO 用户名 IDENTIFIE ...

  4. 被废了的display&colon;box弹性盒模型

    这几天在研究弹性布局,看书中写的是display:box,结果在chrome浏览器中是正常的,想着移动端大部分浏览器也是webkit内核的应该也没啥问题,结果确实没问题,但仔细一看,高度呢?好吧,严重 ...

  5. (转)springAOP解析-2

    原文地址:http://hzbook.group.iteye.com/group/wiki/2262-Spring 3.3.4  AOP拦截器链的调用在了解了对目标对象的直接调用以后,我们开始进入AO ...

  6. windows窗口分析,父窗口,子窗口,所有者窗口

    (本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象 ...

  7. 说说Android应用的persistent属性

    转载地址:http://my.oschina.net/youranhongcha/blog 摘要 在Android系统中,有一种永久性应用.它们对应的AndroidManifest.xml文件里,会将 ...

  8. 模块化写法-IIFE解析

    一.IIFE解释 全拼Imdiately Invoked Function Expression,立即执行的函数表达式.  像如下的代码所示,就是一个匿名立即执行函数: (function(windo ...

  9. table 变量

    table 变量的行为类似于局部变量,有明确定义的作用域.该作用域为声明该变量的函数.存储过程或批处理. 在存储过程中使用 table 变量与使用临时表相比,减少了存储过程的重新编译量涉及表变量的事务 ...

  10. &lbrack;转载&rsqb;Angular4 组件通讯方法大全

    组件通讯,意在不同的指令和组件之间共享信息.如何在两个多个组件之间共享信息呢. 最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有.....我也找找了很多关于组件之间通讯的方法,不同的 ...