JAVA关于顺序数组数据去重,效率最高的方式是什么?
发布网友
发布时间:2022-04-22 21:47
我来回答
共4个回答
热心网友
时间:2022-05-02 00:05
JAVA关于顺序数组数据去重,效率最高的方式是使用LinkedHashSet也是Set,set的特征就是对重复的元素只保存一个,LinkedHashSet只是在内部使用链表维护元素插入的顺序
package com.question;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.LinkedHashSet;
/**
* delete the conflict String.
*
* @author Xxx
*/
public class Q16 {
/**
* generate the text.
*
*/
public void init() {
// write file
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream("C:/init.txt");
for (int i = 0; i < 100000; i++) {
for (int j = 0; j < 2; j++) {
outputStream.write(("Hello" + i).getBytes());
outputStream.write("\r\n".getBytes());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
outputStream = null;
}
}
}
/**
* filter the string.
*
* @return
*/
public LinkedHashSet<String> filter() {
// create a LinkedHashSet project.
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>();
try {
// read the file.
InputStream inputStream = new FileInputStream("C:/init.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = bufferedReader.readLine();
// add the string to the LinkedHashSet
while(line != null) {
linkedHashSet.add(line);
line = bufferedReader.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return the result.
return linkedHashSet;
}
@Deprecated
public static void main(String[] args) {
Q16 q16 = new Q16();
// q16.init();
LinkedHashSet<String> linkedHashSet = q16.filter();
System.out.println(linkedHashSet.size());
}
}
热心网友
时间:2022-05-02 01:23
遍历然后放到set里面,set是不允许重复的,所以自动去重复.
这是官方事先的,根据哈希值算的,效率应该是最高吧
热心网友
时间:2022-05-02 02:58
冒泡排序去重效率高
热心网友
时间:2022-05-02 04:49
用LinkedHashSet,逐行放入数据,如果重复会抛出异常,catch以后continue.