0

我试图划分两个数组我试图做的是一个列表包含一些字符串,第二个列表包含一些其他字符串例如:列表 1 有qw,we,er,rt,ty和 list2 有我们,当我将 list1 从list2 输出应该是 -- qw,rt,ty这是我的代码

package Arraylist;

import java.util.*;
/**
 *
 * @author Charith
 */
public class arList {
    public static void main(String args[]) {
        String word[] = {
            "Hello", "Funny", "Bunny", "Honey"
        };
        List < String > l1 = new ArrayList < String > ();

        for (String s: word) {
            l1.add(s);
        }



        String deleteWord[] = {
            "Funny", "Bunny"
        };
        List < String > l2 = new ArrayList < String > ();

        for (String r: deleteWord) {
            l2.add(r);
        }


        for (int i = 0; i < l1.size(); i++) {
            System.out.printf("%s ", l1.get(i));
        }


        editlist(l1, l2);
        System.out.println();
        for (int i = 0; i < l1.size(); i++) {
            System.out.printf("%s ", l1.get(i));
        }


        * * public static void editlist(Collection < String > list1, Collection < String > list2) * * {
            Iterator < String > it = list1.iterator();
            while (it.hasNext()) {
                if (list2.contains(it.next()))
                    it.remove();
            }


        }

    }
}

但是我在public static void editlist(Collection list1,Collection list2)线上得到一个错误,有人可以告诉我如何纠正这个错误,有人可以解释一下 java 中的 * Collection *s 是什么,我用谷歌搜索它,但它真的很混乱

4

2 回答 2

2

您可以使用collectionUtil 的removeAll API 实现相同的目的。

list1.removeAll(list2);

看看 removeAll API。它将删除 list1 中存在于 list2 中的所有元素。所以在集合论中它是理想的A-B

于 2012-12-31T03:47:05.983 回答
2

看看你的方法声明来自哪里。紧随其后的是:

for(int i =0;i<l1.size();i++){
    System.out.printf("%s " ,l1.get(i));
}

换句话说,它仍然是main方法的一部分。main在声明新方法之前,您需要一个额外的右大括号来完成该方法。您不能声明一种方法而不是另一种方法(除了您在此处未使用的内部类)。

还有更好的方法可以实现您想要的,但这是另一回事 - 正如 Priyank 的回答所说,removeAll这将是一种更简单的方法。

于 2012-12-31T03:47:32.260 回答