数组拓展部分

                                                               一.数组拓展部分

1. 数组的复制

将以下数组复制到另外一个数组里面

```java int[] arr = {1,2,3,4,5};

int[] ar1 = new int[10];

System.arraycopy(arr,0,ar1,0,4); /* arr 源数组 0 源数组中的起始位置 ar1 目标数组 ar1 目标数组 0 目标数据中的起始位置。 4 要复制的数组元素的数量。

*/

```

2.数组扩容

将以下数组进行扩容

java int[] arr = {1,2,3,4,5}; 

Object[] arr = {1,2,4,6}; Object[] ar1 = new Object[arr.length * 2]; System.arraycopy(arr, 0, ar1, 0, arr.length); arr = ar1;

                                                          二.集合前置知识

1.手动实现动态容器

手动实现一个动态容器,能够不限制大小的存储数据,能够动态添加数据

```java package com.briup.day16;

public interface List { void add(Object object);

int size();

Object get(int index);

}

```

```java package com.briup.day16.collection;

public class ArrayList implements List { // 存储数据 private Object[] object;

// 用来记录存储数据个数

private int size;

public ArrayList() {

    this(10);

}

public ArrayList(int init) {

    if(init <= 0) {

        System.out.println("参数只能为大于0");

        System.exit(-1); // 强制结束程序运行

    }

    object = new Object[init];

    size = 0;

}

public void addArrayNumber() {

    Object[] newArray =

            new Object[object.length * 2 + 5];

    System.arraycopy(object, 0,

            newArray, 0, object.length);

    object = newArray;

}

@Override

public void add(Object obj) {

    if(size >= object.length) {

        addArrayNumber();

    }

    object[size] = obj;

    size++;

}

@Override

public Object get(int index) {

    if(index < 0 || index >= size) {

        System.out.println("请输入合法的索引");

        System.exit(-1);

    }

    return object[index];

}

@Override

public void clear() {

    size = 0;

    object = new Object[10];

}

@Override

public int size() {

    return size;

}

} ```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容