检查另一个arraylist中是否有任何元素并打印相同的元素

时间:2015-06-01 00:04:43

标签: java list arraylist

我想查看列表" 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();
}

2 个答案:

答案 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()作为两个循环中的因素,因为listwordlist应该是相同的大小,或者至少我假设它。

此外,对于多个单词的引用或变量,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);
// }