Java处理重复,重复的元素只保留一个。
2015-05-05 13:42
169 查看
一、第一个类。读取文字存储在LinkedList中,通过它的contains方法判断是否重复,重复不处理,不重复则加入。
package com.aawant.nlp.filehandle;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
public class DeleteRepeat {
/**
* 将文件中的文字存储在LinkedList中,
* @param path
* @return
* @throws Exception
*/
public static LinkedList<String> deleterepeat(String path) throws Exception{
LinkedList<String> linkedlist = new LinkedList<String>();
File file = new File(path);
FileInputStream fi = new FileInputStream(file);
InputStreamReader ir = new InputStreamReader(fi);
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(ir);
String temp = "";
while((temp=br.readLine())!=null){
temp = temp.trim();
if(linkedlist.contains(temp)){
continue;
}
linkedlist.add(temp);
}
return linkedlist;
}
public static void main(String args[]) throws Exception{
;
String str = FileHandle.list2string(deleterepeat("F:/position.txt"));
FileHandle.string2File(str,"F:/position2.txt","utf-8");
}
}
二、第二个类。一些文件的基本处理方法。
package com.aawant.nlp.filehandle;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.LinkedList;
public class FileHandle {
/**
* 将字符串写入 文件
* @param str 字符串
* @param outputPath 写入的路径
* @param code 写入的编码格式
* @throws Exception
*/
public static void string2File(String str, String outputPath, String code) throws Exception{
OutputStreamWriter osw = null;
FileOutputStream fos = null;
BufferedWriter bw = null;
File file = new File(outputPath);
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos,code);
bw = new BufferedWriter(osw);
bw.write(str);
bw.close();
fos.close();
}
/**
* 将list中的数据以字符串形式输出
* @param linkedlist
* @return String
*/
public static String list2string(LinkedList<?> linkedlist){
Iterator<?> iter = linkedlist.iterator();
StringBuilder sb = new StringBuilder();
while(iter.hasNext()){
sb.append((String) iter.next());
sb.append("\n");
}
return sb.toString();
}
}
package com.aawant.nlp.filehandle;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
public class DeleteRepeat {
/**
* 将文件中的文字存储在LinkedList中,
* @param path
* @return
* @throws Exception
*/
public static LinkedList<String> deleterepeat(String path) throws Exception{
LinkedList<String> linkedlist = new LinkedList<String>();
File file = new File(path);
FileInputStream fi = new FileInputStream(file);
InputStreamReader ir = new InputStreamReader(fi);
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(ir);
String temp = "";
while((temp=br.readLine())!=null){
temp = temp.trim();
if(linkedlist.contains(temp)){
continue;
}
linkedlist.add(temp);
}
return linkedlist;
}
public static void main(String args[]) throws Exception{
;
String str = FileHandle.list2string(deleterepeat("F:/position.txt"));
FileHandle.string2File(str,"F:/position2.txt","utf-8");
}
}
二、第二个类。一些文件的基本处理方法。
package com.aawant.nlp.filehandle;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.LinkedList;
public class FileHandle {
/**
* 将字符串写入 文件
* @param str 字符串
* @param outputPath 写入的路径
* @param code 写入的编码格式
* @throws Exception
*/
public static void string2File(String str, String outputPath, String code) throws Exception{
OutputStreamWriter osw = null;
FileOutputStream fos = null;
BufferedWriter bw = null;
File file = new File(outputPath);
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos,code);
bw = new BufferedWriter(osw);
bw.write(str);
bw.close();
fos.close();
}
/**
* 将list中的数据以字符串形式输出
* @param linkedlist
* @return String
*/
public static String list2string(LinkedList<?> linkedlist){
Iterator<?> iter = linkedlist.iterator();
StringBuilder sb = new StringBuilder();
while(iter.hasNext()){
sb.append((String) iter.next());
sb.append("\n");
}
return sb.toString();
}
}
相关文章推荐
- 将一个数组中的重复元素保留一个其他的清零(Java)
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- Java代码实现删除一个有序数组里面的重复元素
- java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
- ArrayList中重复元素处理方法.[Java]
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- Java实现单链表(已排序)去重(保留重复元素第一次出现的节点)
- (转)js在数组中删除重复的元素自保留一个(两种实现思路)
- 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
- 一个有趣的问题:怎么在JS的数组中去除重复元素?(JAVA实现吧..)
- 【Java面试题】54 去掉一个Vector集合中重复的元素
- 网易之小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个
- leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组
- 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的...
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用
- 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用
- 如何在Java中构建一个不包含重复元素的List