**数组介绍:**
知识点1:数组长度必须在声明的时候就给定长度。
2:数组的里面的值必须与你声明的类型保持一致。
3:数组的里面的值叫做元素。
4:数组记录元素位置的值叫:下标/索引。
5:数组的默认值(int 0; double 0.0; char ;String null;boolean false)
**数组复制扩容(扩充原来数组大小的两倍)**
方法一:利用循环,先声明一个新的数组;再利用循环复制元素。
方法二:利用System.arraycopy()函数扩容数组.
System.arraycopy(旧的数组名,旧数组开始位置,新的数组名,新数组开始位置,复制的长度)
方法三:利用Arrays.copyOf()函数扩容数组.
Arrays.copyOf(旧的数组名,新的数值长度)
* 注意:方法一,方法二都必须先声明一个新的数组
import java.util.Arrays;
public class CopyArray {
public static void main(String[] args){
/**
* 数组介绍:
* 知识点1:数组长度必须在声明的时候就给定长度。
* 2:数组的里面的值必须与你声明的类型保持一致。
* 3:数组的里面的值叫做元素。
* 4:数组记录元素位置的值叫:下标/索引。
* 5:数组的默认值(int 0; double 0.0; char ;String null;boolean false)
*
*/
//new 一个长度为5的数组(方法一)
int [] i=new int[5];
i[0]=66;
i[1]=77;
i[2]=88;
i[3]=99;
i[4]=55;
//直接给定数组值(方法二)
int [] a={11,22,33,44,55};
//遍历数组: 知识点:数值名.length动态获取数组长度
System.out.println("遍历数组a: ");
for (int j = 0; j <a.length ; j++) {
System.out.print(a[j]+"\t");
}
System.out.println();
/**
* 数组复制扩容(扩充原来数组大小的两倍)
* 方法一:利用循环,先声明一个新的数组;再利用循环复制元素。
*
* 方法二:利用System.arraycopy()函数扩容数组.
* System.arraycopy(旧的数组名,旧数组开始位置,新的数组名,新数组开始位置,复制的长度)
*
* 方法三:利用Arrays.copyOf()函数扩容数组.
* Arrays.copyOf(旧的数组名,新的数值长度)
*
* 注意:方法一,方法二都必须先声明一个新的数组
*/
//扩充数组大小(新建一个数组)
int [] newArray=new int[i.length*2];
System.out.println("利用循环扩容数组:");
for (int j = 0; j <i.length ; j++) {
newArray[j]=i[j];
System.out.print(newArray[j]+"\t");
}
System.out.println();
System.out.println("利用System.arraycopy()函数扩容数组");
System.arraycopy(i,0,newArray,0,i.length);
for (int j = 0; j <newArray.length ; j++) {
System.out.print(newArray[j]+"\t");
}
System.out.println();
System.out.println("利用Arrays.copyOf()函数扩容数组");
int[] ints = Arrays.copyOf(i, i.length * 2);
for (int j = 0; j <ints.length ; j++) {
System.out.print(ints[j]+"\t");
}
}
}
数组的插入移植:
import java.util.Arrays;
public class InsertArray {
//声明一个静态的数组
static int[] old = new int[5];
//声明一个计数器;记录数组有效个数
static int size = 0;
//主函数
public static void main(String[] args) {
insert(0, 11);
insert(1, 22);
insert(2, 33);
insert(3, 44);
insert(4, 55);
print();
insert(5, 66);
print();
insert(3, 88);
insert(6, 89);
insert(7, 68);
insert(0, 38);
insert(9, 18);
print();
System.out.println("-----------------------------------");
remove(8);
print();
}
//向数组里面添加一个数(address位置,number值)
public static void insert(int address, int number) {
//判定给定位置的值是否在数组有效范围内,
if (address < 0 || address > size) {
System.out.println("长度过长,当前长度为:" + size);
return;
}
//当数组长度不够时扩容,
if (size >= old.length) {
copyArray();
}
//向数组有效长度中插入元素时,插入后面的元素向后移动,
for (int i = size; i > address; i--) {
old[i] = old[i - 1];
}
//将给定值赋给数组指定位置,
old[address] = number; size++;
}
//移除某个元素
public static void remove(int address) {
if(address<0||address>=size){
System.out.println("当前值超过数组有效取值");
return;
}
for (int i = address; i <size-1 ; i++) {
old[i]=old[i+1];
}
size--;
}
//扩容函数
public static void copyArray() {
int[] newArray = Arrays.copyOf(old, old.length * 2);
old = newArray;
}
//打印输出函数
public static void print() {
System.out.println("当前值为:");
for (int i = 0; i < size; i++) {
System.out.print(+old[i] + "\t");
}
System.out.println();
}
}