我想查看列表" wordlist"列表中有一些元素" list"。如果有,则应打印这些元素。只是在语法上遇到一些困难来比较java中的2个列表。这是我的代码:
File files = new File("E:/test/dictionary.txt");
String[] words = file.split(" ");
List<String> wordlist = Arrays.asList(words);
try {
Scanner scanner = new Scanner(files);
List<String> list = new ArrayList<>();
while (scanner.hasNextLine()) {
list.add(scanner.nextLine());
}
scanner.close();
for (String word : wordlist) {
System.out.println(word);
}
for (String oleg : list) {
System.out.println(oleg);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
也许我误解了你的问题,因为解决方案对我来说似乎很简单。您只需运行for-loop
并使用ArrayList
contains(Object O)
方法或运行嵌套for-loop
并使用String
equals(String O)
方法。见下文。
方法1:
for(int a = 0; a < wordlist.size(); a++)
if(wordlist.contains(list.get(a)))
System.out.println(list.get(a));
方法2:
for(int a = 0; a < wordlist.size(); a++)
for(int b = 0; b < wordlist.size(); b++)
if(wordlist.get(a).equals(list.get(b));
System.out.println(list.get(b));
在第二个示例中,我将wordlist.size()
作为两个循环中的因素,因为list
和wordlist
应该是相同的大小,或者至少我假设它。
此外,对于多个单词的引用或变量,Java约定规定好的做法是将所有后续单词的首字母大写,即wordlist
应为wordList
。< / p>
希望这有帮助。
答案 1 :(得分:0)
如果我理解您的问题,请使用Collection.retainAll(Collection)
(根据链接的Javadoc仅保留此集合中包含在指定集合中的元素),如
wordlist.retainAll(list);
System.out.println(wordlist);
// for (String word : wordlist) {
// System.out.println(word);
// }
// for (String oleg : list) {
// System.out.println(oleg);
// }