0

2つの配列を分割しようとしているのは、1つのリストにいくつかの文字列が含まれ、2番目のリストに他の文字列が含まれていることです list2出力は次のようになります--qw、rt、ty heres my code

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)誰かがそのエラーを修正する方法を教えてもらえますか?

4

2 に答える 2

2

collectionUtilのremoveAllAPIでも同じことができます。

list1.removeAll(list2);

removeAllAPIをご覧ください 。これにより、list2に存在するすべての要素がlist1から削除されます。したがって、集合論では理想的には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 に答える