? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?一.數(shù)組拓展部分
1. 數(shù)組的復(fù)制
將以下數(shù)組復(fù)制到另外一個數(shù)組里面
```java int[] arr = {1,2,3,4,5};
int[] ar1 = new int[10];
System.arraycopy(arr,0,ar1,0,4); /* arr 源數(shù)組 0 源數(shù)組中的起始位置 ar1 目標(biāo)數(shù)組 ar1 目標(biāo)數(shù)組 0 目標(biāo)數(shù)據(jù)中的起始位置。 4 要復(fù)制的數(shù)組元素的數(shù)量。
*/
```
2.數(shù)組擴(kuò)容
將以下數(shù)組進(jìn)行擴(kuò)容
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.手動實現(xiàn)動態(tài)容器
手動實現(xiàn)一個動態(tài)容器,能夠不限制大小的存儲數(shù)據(jù),能夠動態(tài)添加數(shù)據(jù)
```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 { // 存儲數(shù)據(jù) private Object[] object;
// 用來記錄存儲數(shù)據(jù)個數(shù)
private int size;
public ArrayList() {
? ? this(10);
}
public ArrayList(int init) {
? ? if(init <= 0) {
? ? ? ? System.out.println("參數(shù)只能為大于0");
? ? ? ? System.exit(-1); // 強(qiáng)制結(jié)束程序運行
? ? }
? ? 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;
}
} ```