如何在使用 List 和 LinkedHashSet 从 Java 中的字符串中删除重复值后获取 Arraylist<String>

How to get an Arraylist<String> after using List and LinkedHashSet to remove duplicate values from a string in Java

这是家庭作业的一部分,一个搜索引擎。我正在尝试制作一个 class 从字符串输入中删除重复值(输入将从用户那里获取,现在使用随机字符串进行测试)并将 tokens/words 存储到 ArrayList 中以将它们与String[] of Stop Words(要删除的词)。我正在使用 List 和 LinkedHashSet,因为我想保留单词的顺序并删除重复项。它确实删除了重复的单词并保留了顺序,但我无法让它将单词存储到 ArrayList 中,有什么想法吗?

import java.util.Arrays;
import java.util.List;
import java.util.LinkedHashSet;
import java.util.Set;

public class RemoveDuplicateWord {

    public static void main(String[] args) {
        String str = "the search engine that could search";
        removeDupWord(str);
    }

    public static void removeDupWord(String str) {
        List<String> list = Arrays.asList(str.split(" "));
        Set<String> lhs = new LinkedHashSet<String>(list);

        for(String s : lhs) {
            System.out.print(s+" ");
        }
    }
}

只需声明另一个 arrayList 并在迭代 Set 时将每个字符串添加到其中。

  public static void removeDupWord(String str) {
            List<String> list = Arrays.asList(str.split(" "));
            Set<String> lhs = new LinkedHashSet<String>(list);
           List<String> result= new ArrayList<String>();
            for(String s : lhs) {
                System.out.print(s+" ");
                result.add(s);
            }
        }

我认为这就是您想要的,因为我了解您的需要:/希望它有效

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.LinkedHashSet;
import java.util.Set;
public class RemoveDuplicateWord {
   public static void main(String[] args) {

        String str = "the search engine that could search";
        removeDupWord(str);
    }
public static void removeDupWord(String str) {
    List<String> list = Arrays.asList(str.split(" "));
    Set<String> lhs = new LinkedHashSet<String>(list);
    ArrayList<String> words = new ArrayList<String>();
    for(String s : lhs) {
        words.add(s);
    }
    for(int i=0;i<words.size();i++) {
        System.out.print(words.get(i) + " ");
    }
}
}
public static void removeDupWords(String str) {
      List<String> list = Arrays.asList(str.split(" "));
      Set<String> check = new HashSet<String>();
      String output = "";
      for(int i =0; i< list.size(); i++) {
          if(!check.contains(list.get(i)))
              output = output.concat(list.get(i) + " ");
          check.add(list.get(i));
      }
     System.out.println(output);
}