如何在java中使用2D数组从一堆eml文件中添加唯一字符串和该字符串的计数

如何在java中使用2D数组从一堆eml文件中添加唯一字符串和该字符串的计数,java,multidimensional-array,Java,Multidimensional Array,基本上我是从本地文件夹中读取.eml文件,我想测量所有文档中每个字符串的频率。我的意思是在我所有的文档中找到一个单词的次数。我想使用一个2d数组来存储所有文档中的唯一单词及其出现次数。我的想法是阅读一个文档,找出唯一的单词,然后将该单词插入数组,然后阅读第二个文档,然后在数组中搜索唯一性,如果找到的单词增加出现次数,如果在数组列表中未找到单词,则将该单词添加到数组中,并增加该单词的计数1,然后在读取之后,获得第三个文件,并执行相同的操作。我在使用来自的帮助。但它并没有检查数组中的唯一性。。。它只

基本上我是从本地文件夹中读取.eml文件,我想测量所有文档中每个字符串的频率。我的意思是在我所有的文档中找到一个单词的次数。我想使用一个2d数组来存储所有文档中的唯一单词及其出现次数。我的想法是阅读一个文档,找出唯一的单词,然后将该单词插入数组,然后阅读第二个文档,然后在数组中搜索唯一性,如果找到的单词增加出现次数,如果在数组列表中未找到单词,则将该单词添加到数组中,并增加该单词的计数1,然后在读取之后,获得第三个文件,并执行相同的操作。我在使用来自的帮助。但它并没有检查数组中的唯一性。。。它只是将文件中的唯一单词添加到数组中。例如,在第一个文件中,“word”出现了3次,所以它显示在数组| word | 3 |中,然后在第二个文件中“word”出现了4次,所以它显示了| word | 4 |。但我想把它写成| word | 7 |

我从中获得帮助的代码

public static String[][] dupWords (String str) {
    String [] stringArray = str.split(" ");
    int countWords = 0;
    int index = 0;
    HashMap<String, String> indexMap = new HashMap<String, String>();
    HashMap<String, Integer> countMap = new HashMap<String, Integer>();

    //int indexx = 0;
    for (int i = 0; i < stringArray.length; i++) {
       String s = stringArray[i];
       if (!indexMap .containsKey(s)) {
         indexMap.put(s, s);
         countMap.put(s, 1);
       }
       else {
         int cnt = countMap.get(s);
         countMap.put(s, cnt+1);
       }
       index += s.length() + 1;
    }

    String [][] retArr = new String[stringArray.length][2];

    for (int i = 0; i < stringArray.length; i++) {
       String s = stringArray[i];
       retArr[i][0] = indexMap.get(s);
       retArr[i][1] = Integer.toString(countMap.get(s));
       System.out.println(retArr[i][0]);
       System.out.println(retArr[i][1]);
    }

    return retArr;
  }
publicstaticstring[][]双字(stringstr){
String[]stringArray=str.split(“”);
int countWords=0;
int指数=0;
HashMap indexMap=新的HashMap();
HashMap countMap=新HashMap();
//int indexx=0;
对于(int i=0;i
我建议您将数据存储在
HashMap
中,其中您的单词是关键字,值是出现次数

您可以检查地图中是否存在密钥。如果不是,则插入它,如果是,则增加其值

Foo value = map.get(key);
if (value != null) {
   //increment my value
} else {
   //insert me
}