麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

JDK5 新特性之 可變參數的方法(2)---asList

2019-11-14 22:58:10
字體:
來源:轉載
供稿:網友
JDK5 新特性之 可變參數的方法(2)---asList

》 Arrays.asList(T … a)方法的使用

》UnsupportedOperationException分析

 

 

  • Arrays.asList(T … a)方法的使用
package cn.itcast.day24.varparam;import java.util.Arrays;import java.util.List;/** *  * public static <T> List<T> asList(T... a):把數組轉為集合 *  * 注意: *         轉成的集合本質還是數組,長度是固定的,所以轉換完成得到的集合,不能增刪(會改變數組長度),只能修改。 * */public class AsListDemo {    public static void main(String[] args) {        //定義一個數組//        String[] arrStr={"林青霞","武松","豬八戒"};//        List<String> list=Arrays.asList(arrStr);                List<String> list=Arrays.asList("java","world","hello");        //UnsupportedOperationException        list.add("javaee");//錯誤//        list.remove(1);//錯誤        list.set(1, "javaee");//修改成功        //        for(String s:list){//            System.out.PRintln(s);//        }    }}
  • UnsupportedOperationException分析

可以看到Arrays的私有內部類Arrays$ArrayList中,沒有實現來自父類AbstractList的add(),remove()等長度相關的方法,

所以拋出 UnsupportedOperationException,意思是:不支持請求的操作(當然不支持)

private static class ArrayList<E> extends AbstractList<E>    implements Randomaccess, java.io.Serializable    {        private static final long serialVersionUID = -2764017481108945198L;    private final E[] a;    ArrayList(E[] array) {            if (array==null)                throw new NullPointerException();        a = array;    }    public int size() {        return a.length;    }    public Object[] toArray() {        return a.clone();    }    public <T> T[] toArray(T[] a) {        int size = size();        if (a.length < size)        return Arrays.copyOf(this.a, size,                     (Class<? extends T[]>) a.getClass());        System.arraycopy(this.a, 0, a, 0, size);        if (a.length > size)        a[size] = null;        return a;    }    public E get(int index) {        return a[index];    }//重寫了父類AbstractList的set方法,所以set時沒有拋出異常.而add和remove方法來自基類,所以都拋出了異常。
    public E set(int index, E element) {        E oldValue = a[index];        a[index] = element;        return oldValue;    }        public int indexOf(Object o) {            if (o==null) {                for (int i=0; i<a.length; i++)                    if (a[i]==null)                        return i;            } else {                for (int i=0; i<a.length; i++)                    if (o.equals(a[i]))                        return i;            }            return -1;        }        public boolean contains(Object o) {            return indexOf(o) != -1;        }    }

 

AbstractList源碼:
package java.util;public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {    public E set(int index, E element) {    throw new UnsupportedOperationException();    }    public boolean add(E e) {    add(size(), e);    return true;    }    public void add(int index, E element) {    throw new UnsupportedOperationException();    }    public E remove(int index) {    throw new UnsupportedOperationException();    }    public void clear() {        removeRange(0, size());    }    public E set(int index, E element) {    throw new UnsupportedOperationException();    }    abstract public E get(int index);}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 69性欧美高清影院 | 19禁国产精品福利视频 | 亚洲精品自在在线观看 | 一本精品999爽爽久久久 | 中文字幕欧美视频 | 日本在线一区二区 | 成人三级在线播放 | 特黄一区二区三区 | 精品国产91久久久久久浪潮蜜月 | 国产一级中文字幕 | 美女黄污视频 | 曰批全过程40分钟免费视频多人 | 99视频有精品视频高清 | 久久成年人视频 | 成人免费视频视频在线观看 免费 | 涩涩伊人 | 国产69精品久久久久9999不卡免费 | 成人福利在线 | 欧美黄色性生活视频 | 亚洲国产精品久久久久婷婷老年 | 日本黄色一级视频 | av在线免费观看播放 | 国产91久久久久久 | 国产一区二区三区四区五区加勒比 | 国产精品伦视频看免费三 | 国产在线观看一区二区三区 | 欧美一级成人 | 亚洲精品在线观看网站 | 99视频观看 | 国产福利视频在线观看 | 免费观看国产精品视频 | 欧美日本免费一区二区三区 | 全黄裸片武则天一级第4季 偿还电影免费看 | 九九热精品在线视频 | 久久久久久久久久亚洲精品 | 午夜丰满少妇高清毛片1000部 | 免费观看一级黄色片 | 亚洲一级电影在线观看 | 欧美成人精品一区二区三区 | 九草在线 | 国产乱色精品成人免费视频 |