转载 Java合并两个文件,Set去重。 收藏
package com.joyhoo.words;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HashSetInFile
{
//simpleFile、insertFile为两个输入文件,outFile为输出文件
public void readFile(String simpleFile,String insertFile,String outFile)
{
Set set = new HashSet();
try
{
String line="";
FileInputStream fisf = new FileInputStream(simpleFile);
InputStreamReader isrf = new InputStreamReader(fisf, "UTF8");
BufferedReader br =new BufferedReader(isrf);
while((line=br.readLine())!=null ){
if(!line.contains(" "))
set.add(line);
}
br.close();
System.out.println(set.size());
FileInputStream fis = new FileInputStream(insertFile);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader inbr=new BufferedReader(isr);
String temp = "";
while((temp = inbr.readLine()) != null){
if(!set.contains(temp) ){
set.add(temp);
}
}
inbr.close();
FileOutputStream fos = new FileOutputStream(outFile);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos,"UTF8"));
Iterator it = set.iterator();
while(it.hasNext()){
String element = (String)it.next();
out.write(element);
out.newLine();
}
out.close();
}catch(Exception e){
System.out.println("readFile errors:" + e.getMessage());
}
}
public static void main(String[] args)
{
HashSetInFile hf = new HashSetInFile();
String simple = "D:\\tmp\\simplexu8.txt";
String insert = "D:\\tmp\\sogou.txt";
String outfile = "D:\\tmp\\simplexu81.txt";
hf.readFile(simple, insert, outfile);
}
}
分享到:
相关推荐
java set 去重
两个数组的交集(set去重后找交集)1
本篇将讨论一种不使用内置的set或dict数据结构来实现列表去重的方法。 标题提到的“python列表练习-列表如何去重(不使用set或者dict)”是一个编程练习,目的是锻炼对列表操作的理解和技巧。描述中也明确了我们要...
比如,set是无序的,这意味着使用set去重后,原列表中元素的顺序可能会丢失。如果列表中包含了不可哈希的元素(如列表自身),则无法直接转换为set。此外,set去重过程不适用于含有可变类型元素的列表。 在某些情况...
3. **利用Object/Map/Set去重法**: JavaScript的`Object`、`Map`和`Set`数据结构都具有键唯一性的特点,可以利用这个特性来去重。例如,可以将数组元素作为键添加到对象或`Map`中,或直接使用`Set`存储,最后转换...
这种方法与使用Set去重相同,适用于大部分场景。 总结来说,JavaScript中数组去重有多种方法,每种方法都有其适用场景。在实际开发中,应根据数据量、性能需求以及是否需要保留原始顺序来选择合适的方法。在追求...
以下是如何用Set去重字符串中的字符: ```javascript function removeDuplicatesBySet(str) { return Array.from(new Set(str)).join(''); } var myString = "hello world"; console.log(removeDuplicatesBySet...
这段代码获取了所有MyModel对象的ID,并通过set去重,生成一个不重复的ID列表。 4. **列表推导式与生成器表达式**: 对于大数据量的列表,直接转换为set可能会消耗大量内存。此时,可以使用生成器表达式来逐个...
这篇文章主要介绍了python set集合使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ...# 主要功能在于去重与关系元素,没有取出单个值的需求
`contacts`是一个包含ExternalContacts对象的QuerySet,通过循环遍历并获取每个contact的house_set,然后使用`|`操作符合并所有的House对象。最后,使用`.distinct()`来确保返回的House对象是不重复的。 需要注意的...
Java List中数据的去重 Java List中数据的去重是Java编程中一个常见的问题。今天,我们将讨论如何在Java List中去除重复的...Java List中数据的去重可以使用Set集合来实现。我们可以根据实际情况选择合适的去重方法。
利用文件m-a_edges.csv获得所有api,并用set去重即可。(2)Web API被使用的次数,即统计Mashup与Web API有多少相连关系即可。利用文件m-a_edges.csv获取全部数据,数据的长度即为使用次数。(3)Web API提供商发布的API...
new_li = list(set(words)) # 使用set去重,再转换回list new_li.sort(key=words.index) # 保持原有顺序 return new_li ``` 接下来,我们需要一个函数来计算每个单词的ASCII码值之和。这可以通过遍历单词中的每...
1. **C++_不筛选回溯+set去重** 2. **C++_排序+筛选回溯** ### 方法一:C++_不筛选回溯+set去重 这种方法首先使用回溯算法生成所有的排列组合,然后通过`set`来去除重复的排列。回溯算法的核心在于递归地选择每个...
主要涉及了暴力搜索、硬算+排序以及优先队列+Set去重等几种不同的算法思想。每种方法都有其适用场景和优缺点,在实际比赛中可以根据具体情况进行选择。此类题目旨在考察参赛者的算法设计能力和编程技巧,对于提升...
在数组去重中,Set非常实用。首先,创建一个Set对象,将原数组作为参数传入,Set会自动过滤掉重复的值。然后,为了将Set转换回数组,可以使用扩展运算符(...)。这种方法简洁且效率高,是首选的去重方式。但是,...
接下来我们将深入探讨Set集合的基本特点、底层去重原理以及如何进行排序。 首先,让我们理解Set集合的基本特点: 1. **唯一性**:Set集合中的每个元素都是唯一的,不允许有重复的值。如果尝试添加已存在的元素,...
set去重得到的list2默认按升序进行排序: list2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 使list2按照list1元素出现的顺序进行排序(也就是原来的顺序): list2.sort(key = list1.index) 此时,list2 = [1, 2, 4, 9...
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有...一、利用ES6 Set去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) }
本文实例总结了JavaScript数组去重的方法。分享给大家供大家参考,具体如下: 数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。...一、利用ES6 Set去重(ES6中最常用) function unique