如何在使用 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);
}
这是家庭作业的一部分,一个搜索引擎。我正在尝试制作一个 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);
}