Arrays.asList的哪点事

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {
        List<String> source1 = new ArrayList<String>(Arrays.asList("1", "2", "3"));
        ArrayList<String> source2 = new ArrayList<String>(Arrays.asList("5", "62", "3"));
        source2.removeAll(source1);
        System.out.println(source2);
//        Arrays.asList("1", "2", "3").remove("1");//会报错。因为Arrays$ArrayList中没有实现remove方法

        System.out.println(source1.containsAll(source2));
        HashSet<String> total = new HashSet<String>();
        total.addAll(source1);
        total.addAll(source2);
        System.out.println(total.size() > (source1.size() + source2.size()));
        System.out.println(total.size() < (source1.size() + source2.size()));
    }

}
    // Misc

    /**
     * Returns a fixed-size list backed by the specified array.  (Changes to
     * the returned list "write through" to the array.)  This method acts
     * as bridge between array-based and collection-based APIs, in
     * combination with {@link Collection#toArray}.  The returned list is
     * serializable and implements {@link RandomAccess}.
     *
     * <p>This method also provides a convenient way to create a fixed-size
     * list initialized to contain several elements:
     * <pre>
     *     List&lt;String&gt; stooges = Arrays.asList("Larry", "Moe", "Curly");
     * </pre>
     *
     * @param a the array by which the list will be backed
     * @return a list view of the specified array
     */
    public static <T> List<T> asList(T... a) {
    return new ArrayList<T>(a);
    }

    /**
     * @serial include
     */
    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;
    }
时间: 2024-10-13 07:27:21

Arrays.asList的哪点事的相关文章

【Java基础】一个有意思的泛型方法Arrays.asList(T... a)

总结 利用Arrays.asList方法返回的List是不允许add和remove的,这种list的长度不可变,因为底层依然是写数组. Arrays.asList的返回值是调用是传入T类型的List,所以传入啥,返回啥的列表 T... a 底层本来就是转换为T[] x的数组,所以如果传入的T是数组,最后的底层参数是二维数组T[][] y. Arrays.asList(T... a)方法的作用 将数组转为集合的方法,返回的是List集合.和Collection的toArray对应,是数组和集合间相

浅谈Arrays.asList()方法的使用

首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新 (3)不支持add和remove方法 上代码: 1 package com.hdu.test; 2 3 import java.util.Arrays; 4 import java.util.List; 5 6 abstract public class

Arrays.asList 小结

Arrays.asList()返回一个实现了List接口的类,但是不支持add,remove等改变尺寸的操作. Arrays.asList源码如下 1 public static <T> List<T> asList(T... a) { 2 return new ArrayList<>(a); 3 } 这里有一个大坑,我开始没仔细看,以为返回的就是java.util.ArrayList,可实际上此ArrayList是Arrays里面的私有静态内部类,代码如下所示. 1

Arrays.asList () 不可添加或删除元素的原因

Java中奖数组转换为List<T>容器有一个很方便的方法 Arrays.asList(T ... a),我通过此方法给容器进行了赋值操作,接着对其进行 添加元素,却发现会抛出一个(java.lang.UnsupportedOperationException)异常. 看了一下源码: public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } 定位到 ArrayList 内

Arrays.asList的用法:

Arrays.asList 返回数组而非List. List的一个典型的特性就是其长度是可变的,我们可以很方便地对它进行插入和删除元素的操作,这是它与数组所存在的一个很大的区别,后者的长度是固定的,而且我们不能从数组中删除元素,只能修改元素的值. 利用Arrays.asList(array)返回一个List,然而这个返回的是只读的List不支持add和remove的操作. JDK文档是这么说的: public static <T> List<T> asList(T... a) 返回

Arrays.asList()方法

// Collection<Integer> integers = new ArrayList<Integer>();//(Arrays.asList(1,2,3,4,5)); Collection<Integer> integers = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));// integers = Arrays.asList(1,2,3,4,5); System.out.println(int

为什么Java里的Arrays.asList不能用add和remove方法?

在平时的开发过程中,我们知道可以将一个Array的对象转化为List.这样的操作,我们只要采用Arrays.asList这个方法就行了.笔者前段时间一直用这个方法,有一天,我发现通过Arrays.asList得到的List无法进行add和remove等操作. 下面是一段很简单的测试代码: public class MainFacade { public static void main(String[] args) { List<Integer> list = Arrays.asList(1,

Arrays.asList的用法

使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportOperationException异常说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法.Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组.String[] str = new String[]{"1","2"};List list = Arrays.as

java——Arrays.asList()方法

Arrays.asList() 是将数组作为列表 问题来源于: public class Test { public static void main(String[] args) { int[] a = {1,2,3,4}; List list = Arrays.asList(a); System.out.println(list.size()); //1 } } 期望的输出是 list里面也有4个元素,也就是size为4,然而结果是1. 原因如下: 在Arrays.asList中,该方法接受