以下代码将计算每个字符的出现次数。如果文本文件中有abc,则输出将是a 1 b 1 c 1。我在许多网站上读到,for循环将占用大量时间,最好使用哈希映射实现相同的功能。你们中的任何人能帮我把这个程序转换成使用哈希映射的吗?
import java.io.*;
class Count_Char {
public static void main(String[] args) {
try
{
FileInputStream file = new FileInputStream("D:\\trial.txt");
DataInputStream dis = new DataInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));
String Contents="";
String str="";
while ((Contents = br.readLine()) != null) {
str+=Contents;
}
char[]char_array =str.toCharArray();
for(int count =0;count<char_array.length;count++){
char ch= char_array[count];
int counter=0;
for ( int i=0; i<char_array.length; i++){
if (ch==char_array[i])
counter++;
}
boolean flag=false;
int j=count-1;
while(j>=0)
{
if(ch==char_array[j])
flag=true;
j--;
}
if(!flag){
System.out.println(ch+" "+counter);
}
}
}catch(IOException e1){
System.out.println(e1);
}
}
}