Java 从数组/arraylist中删除重复字符串

Java 从数组/arraylist中删除重复字符串,java,indexing,hashmap,Java,Indexing,Hashmap,下面是一段代码,我试图从包含一些文本文件的文件夹(Tester)中获取文件内容。之后,我必须把文本文件中的所有单词编成字典。我正在获取单词(字符串),但它们正在重复,我必须删除重复的单词 例如: file1-John正在编码,file2-John实际上没有编码 所以我想要的输出是-John正在编码,实际上不是,也就是说,不是重复的 此外,我必须制作一个矩阵,其中包含所有单词和相应的文本文件(就像索引器一样)。 例如: 任何帮助都将不胜感激,我被困住了 public static void mai

下面是一段代码,我试图从包含一些文本文件的文件夹(Tester)中获取文件内容。之后,我必须把文本文件中的所有单词编成字典。我正在获取单词(字符串),但它们正在重复,我必须删除重复的单词

例如:

file1-
John正在编码
,file2-
John实际上没有编码

所以我想要的输出是-
John正在编码,实际上不是
,也就是说,不是重复的

此外,我必须制作一个矩阵,其中包含所有单词和相应的文本文件(就像索引器一样)。 例如:

任何帮助都将不胜感激,我被困住了

public static void main(String[] args) throws IOException {
    File folder = new File("/home/gaurav/Tester");
    File[] listOfFiles = folder.listFiles();
    ArrayList<String> array = new ArrayList<String>();

    for (int i = 0; i < listOfFiles.length; i++) {
        File file = listOfFiles[i];

        if (file.isFile() && file.getName().endsWith(".txt")) {
            String content = FileUtils.readFileToString(file);
            String[] a = content.split(" ");

            for (String s : a) {
                if (!array.contains(a)) {
                    array.add(s);
                }
            }
        }
    }

    for (int j = 0; j < array.size(); j++) {
        System.out.print(array.get(j));
    }
}         
publicstaticvoidmain(字符串[]args)引发IOException{
文件夹=新文件(“/home/gaurav/Tester”);
File[]listOfFiles=folder.listFiles();
ArrayList数组=新的ArrayList();
for(int i=0;i
您的错误是您正在检查包含(a)而不是包含(s) 另外一个好主意是在比较或添加之前修剪s。我们也要这样做:

       for(String s:a){
          s = s.trim()
          if(!array.contains(s))
          array.add(s);

        }

使用
集合
,因为它不包含重复的元素:

Set<String> words = new HashSet<>();
// ...
for(String word: a) {
    words.add(word);
}
Set words=newhashset();
// ...
for(字符串字:a){
添加(word);
}
array = new ArrayList<>(new LinkedHashSet<>(array));
        for(String s:a){

            if(!array.contains(a))
             array.add(s);
        }
       for(String s:a){
          s = s.trim()
          if(!array.contains(s))
          array.add(s);

        }
Set<String> words = new HashSet<>();
// ...
for(String word: a) {
    words.add(word);
}