用java设计一个算法,现有一台2G内存4核CPU的电脑,找出一个10G字符文件中 第一个不重复的字符
时间: 2023-05-27 17:06:42 浏览: 90
思路:
1. 读取文件中的字符,将其存入Map中,Key为字符,Value为该字符出现的次数。
2. 遍历Map,找出Value为1的字符,即为第一个不重复的字符。
3. 如果没有找到不重复的字符,则返回空字符。
代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class FirstNonRepeatingChar {
public static void main(String[] args) {
String filePath = "C:\\test.txt"; // 文件路径
char first = findFirstNonRepeatingChar(filePath);
System.out.println("The first non-repeating character in file is: " + first);
}
public static char findFirstNonRepeatingChar(String filePath) {
Map<Character, Integer> charMap = new HashMap<>(); // 存储字符出现次数的Map
File file = new File(filePath);
char first = '\0'; // 初始化为null字符
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
for (char c : line.toCharArray()) {
if (charMap.containsKey(c)) {
charMap.put(c, charMap.get(c) + 1);
} else {
charMap.put(c, 1);
}
}
}
for (char c : charMap.keySet()) {
if (charMap.get(c) == 1) {
first = c;
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return first;
}
}
```
阅读全文