1. 程式人生 > >Java從在陣列中刪除指定元素

Java從在陣列中刪除指定元素

package org.usc.action;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
    public static void main(String[] args) {
    String[] str={"張三","李四","王五","宋六","趙七","朱八","何九","田十"};
    List<String> list=Arrays.asList(str);//將陣列轉換為list集合
    if(list.contains("張三")){//加入集合中包含這個元素
        /*remove這些method時出現java.lang.UnsupportedOperationException異常。
         * 這是由於Arrays.asList() 返回java.util.Arrays$ArrayList,
         *  而不是ArrayList。Arrays$ArrayList和ArrayList都是繼承AbstractList,
         *  remove,add等method在AbstractList中是預設throw UnsupportedOperationException而且不作任何操作。
         *  ArrayList override這些method來對list進行操作,
         *  但是Arrays$ArrayList沒有override remove(),add()等,
         *  所以throw UnsupportedOperationException。
         */
        //這個時候我們直接移除會報錯,所以我們要轉換為Arraylist
       //list.remove("張三");
        List<String> arrayList=new ArrayList<String>(list);//轉換為ArrayLsit呼叫相關的remove方法
        arrayList.remove("張三");
        for(String str1:arrayList ){
            System.out.print(str1+",");
        }
    }
    }
}