8

リストから特定の要素を削除したい。リストを繰り返し処理しているときにこれを行いたくありません。削除する値を指定したい。javadocs で、関数List.remove(Object 0)This is my code を見つけました:

         String str="1,2,3,4,5,6,7,8,9,10";
         String[] stra=str.split(",");
         List<String> a=Arrays.asList(stra);
         a.remove("2");
         a.remove("3");

しかし、私は例外を取得します:java.lang.UnsupportedOperationException

4

2 に答える 2

25

問題は、Arrays.asList()挿入/削除をサポートしていないリストを返すことです (これは単にへのビューstraです)。

修正するには、次を変更します。

List<String> a = Arrays.asList(stra);

に:

List<String> a = new ArrayList<String>(Arrays.asList(stra));

これにより、リストのコピーが作成され、変更できるようになります。

于 2012-05-17T12:59:55.540 に答える
2

http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29

これを参照してください。Arrays.asList は固定リストを返します。これは不変のものです。その定義により、一度作成したオブジェクトを変更することはできません。そのため、サポートされていない例外がスローされています。

于 2012-05-17T14:05:13.630 に答える