一.数组拓展部分
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;
}
} ```