java吧 关注:1,301,984贴子:12,851,364
  • 1回复贴,共1

Java 每日一题:2016年8月26日

取消只看楼主收藏回复

每天在这里贴一道 Java 题。
问题不难,有 Java 的基本知识就可以做出来。
问题也不偏,日常工作中时不时会碰到。
每日一题索引页:52.36.153.52:8080/javaquestions/

请问程序输出结果是什么?


1楼2016-08-26 13:12回复
    http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/java/util/Arrays.html#asList(T...)
    public static <T> List<T> asList(T... a)返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同Collection.toArray() 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。
    这个方法返回的 List 可以看作是数组的一个视图。你不能对这个 List 使用 add 或 remove 方法,因为这个 List 对应的是一个数组(数组的大小不能改变)。
    查看源代码可以看出,这个List 是一个 Arrays.ArrayList (这是 Arrays 的一个内部静态类,不是我们经常使用的 java.util.ArrayList)。它的 add/remove方法直接继承自父类(java.util.AbstractList)。下面是 add 和 remove 方法:
    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();
    }
    如果你增加或删除元素,会抛出 UnsupportedOperationException 异常。


    8楼2016-08-26 21:43
    回复