`

Arrays

阅读更多
Arrays


一、总结

1.基于 jdk 1.8

二、asList

    /**
     * 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);
    }



1.参数为 T 多个泛型T
若参数为基础数据类型的数组,则将其视为一个整体,如 int [] a ,此时的size = 1
若参数为引用数据类型,则其size为数据的个数

2.ArrayList 非 java.util.ArrayList

三、Arrays.ArrayList 内部私有静态类
    /**
     * @serial include
     */
    // 继承 Abstract ,而 Abstract 实现 List ,所以 asList 才可以用 List 接收
    // 即 ArrayList 间接实现了 List
    private static class ArrayList<E> extends AbstractList<E>
    // RandomAccess 可以随机访问,Serializable 可序列化
	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;
	}
        // 以下是 ArrayList 实现的方法,无RemoveAll 方法,所以asList 的返回值List
        // 调用 removeAll时会抛出无此操作方法的异常
	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];
	}

	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;
        }
    }


分享到:
评论

相关推荐

    System.arraycopy和Arrays.copyOf

    `System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...

    PHP.Arrays.in.PHP.7

    Gain an in-depth understanding of PHP 7 arrays. After a quick overview of PHP 7, each chapter concentrates on single, multi-dimensional, associative, and object arrays. PHP Arrays is a first of its ...

    Collection与Collections,Array与Arrays的区别

    Collection与Collections,Array与Arrays的区别 Collection与Collections的区别: Collection是一个接口,位于java.util包下,是各种集合结构的父接口。它提供了最基本的集合操作,如add、remove、contains等。...

    Antenna Arrays and Automotive Applications

    radar antenna arrays, and smart antenna arrays for automatic cruise control applications provide increased safe travelling for vehicle passengers. Vehicle localization techniques based on the antenna ...

    android多语言strings.xml,arrays.xml转xls与xls转xml脚本程序

    `strings.xml`和`arrays.xml`文件是Android资源文件中的核心组件,用于存储应用程序中的文本和数组数据。这些文件通常包含不同语言的字符串资源,以便在不同地区展示相应的本地化内容。 本话题涉及一个脚本程序,它...

    你清楚Arrays.binarySearch()方法的返回值吗?

    在Java编程语言中,`Arrays`类是Java.util包下的一个非常重要的工具类,它提供了大量用于操作数组的静态方法,其中包括我们今天要讨论的`binarySearch()`方法。`Arrays.binarySearch()`方法允许我们在有序数组中查找...

    Protein.Arrays,.Biochips,.and.Proteomics.-.Joanna.S.Albala

    #### 蛋白质阵列(Protein Arrays) 蛋白质阵列是一种高通量技术,用于检测生物样本中的蛋白质种类及其相对丰度。这种技术通过将成千上万种不同的蛋白质固定在一个固体基质上(如玻璃片或尼龙膜),然后用标记的...

    Finite Antenna Arrays and FSS.rar )

    在《Finite Antenna Arrays and FSS》这份资料中,读者可以期待深入学习以下主题: 1. 天线阵列的基本原理:包括阵列因子、方向图计算、阵列配置(线阵、面阵、随机阵列等)。 2. 阵列优化设计:讨论如何通过最优化...

    Electronically_Scanned_Arrays

    ### 相控阵天线(Electronically Scanned Arrays)详解 #### 一、引言与历史背景 相控阵天线(Electronically Scanned Arrays,ESA),是一种能够通过电子方式实现波束扫描和定位的天线系统,无需机械转动即可完成...

    Microphone Arrays : A Tutorial

    ### Microphone Arrays:一个教程 #### 标题与描述解读 标题“Microphone Arrays : A Tutorial”明确指出了本文档的主要内容是关于麦克风阵列的技术教程。麦克风阵列是一种由多个麦克风组成的空间配置,用于捕捉...

    PHP Arrays Single, Multi-dimensional, Associative and Object Arrays in 无水印原版pdf

    PHP Arrays Single, Multi-dimensional, Associative and Object Arrays in PHP 7 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如...

    [PDF] Digital Signal Processing with Field Programmable Gate Arrays (part 1 of 4)

    《Digital Signal Processing with Field Programmable Gate Arrays》扫描版

    Java中Arrays实用方法

    /** *Arrays提供数组操作的一系列实用方法 *1输出 *2排序 *3二分查找 *4复制 *5扩容 */

    Introduction to Parallel Algorithms - Arrays Trees Hypercubes

    The contents itself is organized in three chapters according to the network architecture: arrays and trees for Chapter 1 (117 pages), meshes of trees for Chapter 2 (117 pages), and hypercubes and ...

    Digital Signal processing with Field Programmable Gate Arrays

    《Digital Signal processing with Field Programmable Gate Arrays》是一本非常有价值的教材,它不仅涵盖了DSP的基本理论,还详细介绍了如何使用FPGA来实现各种DSP功能。对于学习和从事DSP领域的专业人士来说,这...

    Digital Signal Processing with Field Programmable Gate Arrays

    - **Digital Signal Processing with Field Programmable Gate Arrays**:此标题明确指出本书的主要内容是关于如何使用现场可编程门阵列(Field Programmable Gate Arrays,简称FPGA)进行数字信号处理(Digital ...

    图片url地址arrays.xml

    网络图片地址url集合arrays.xml文件

    Electronically Scanned Arrays_MATLAB Modeling and Simulation_2012.rar

    1. **电子扫描阵列(Electronically Scanned Arrays, ESA)**: - ESA是一种现代雷达系统,其天线单元能够通过电子方式改变发射或接收信号的方向,而无需机械移动。 - 主要类型包括相控阵和电扫阵列,其中相控阵...

Global site tag (gtag.js) - Google Analytics