Java语言读取字典之后二次读取,两次读取把不重复的数据忽略,保留重复的数据,怎么实现的
可以使用Java中的Set集合来实现,首先,使用Java中的File类和Scanner类读取字典文件,将数据存储在一个ArrayList中。然后,定义两个Set集合,一个用来存储所有的数据,一个用来存储重复的数据。遍历ArrayList,将每个元素添加到“所有数据”的Set集合中。在添加元素时,判断该元素是否已经存在于该集合中,如果存在,则将元素添加到“重复数据”的Set集合中。最后,遍历“重复数据”的Set集合,输出所有重复的数据。
下面是一个示例代码,可以参考:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
// 读取字典文件
File file = new File("dictionary.txt");
Scanner scanner = new Scanner(file);
// 存储所有的数据的集合
Set<String> allData = new HashSet<>();
// 存储重复的数据的集合
Set<String> duplicateData = new HashSet<>();
// 将数据添加到集合中
while (scanner.hasNextLine()) {
String data = scanner.nextLine();
// 判断数据是否已经存在于集合中
if (allData.contains(data)) {
// 如果已经存在,则将数据添加到“重复数据”集合中
duplicateData.add(data);
} else {
// 如果不存在,则将数据添加到“所有数据”集合中
allData.add(data);
}
}
// 输出重复的数据
System.out.println("重复的数据:");
for (String data : duplicateData) {
System.out.println(data);
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类非静态变量
父类非静态代码块
父类构造函数
子类非静态变量
子类非静态代码块
子类构造函数