一、数组的基本使用:
public class TestArray {
public static void main(String[] args) {
//创建一个数组
int[] arr1 = new int[3];
//获取数组长度
int length1 = arr1.length;
System.out.println("arr1's length="+length1);
//访问数组中的元素:数组名[下标] 注意:下标从0开始
int element0 = arr1[0];
System.out.println("element0="+element0);
//为数组中的元素赋值
arr1[0] = 99;
System.out.println("element0="+element0);
arr1[1] = 98;
arr1[2] = 97;
//遍历数组
for (int i = 0; i < arr1.length; i++) {
System.out.println("arr1 element"+i+"="+arr1[i]);
}
//创建数组的同时为数组中的元素赋值
int[] arr2 = new int[] {0,1,2,3,4};
//获取数组的长度
System.out.println("arr2 length="+arr2.length);
}
}
二、为数组添加元素:
public class TestOpArray {
public static void main(String[] args) {
//解决数组的长度不可变的问题
int[] arr = new int[]{9,8,7};
//快速查看数组中的元素
System.out.println(Arrays.toString(arr));
//准备一个要加入数组的目标元素
int dst = 6;
//创建一个新的数组,长度是原数组长度加1
int[] newArr = new int[arr.length+1];
//把原数组中的数据全部赋值到新数组中
for (int i = 0; i < arr.length; i++) {
newArr[i] = arr[i];
}
//把目标元素放入新数组的最后
newArr[arr.length] = dst;
//新数组替换原数组
arr = newArr;
System.out.println(Arrays.toString(arr));
}
}
二、为数组删除元素:
public class TestOpArray2 {
//如何删除数组中的元素
public static void main(String[] args) {
//目标数组
int[] arr = new int[]{9,8,7,6,5,4};
System.out.println(Arrays.toString(arr));
//要删除的元素的下标
int dst = 5;
//创建一个新的数组,长度是元素组的长度减1
int[] newArray = new int[arr.length-1];
//赋值原数组中的除了要删除的那个元素以外的所有元素
for (int i = 0; i < newArray.length; i++) {
//要删除的元素之前的元素
if(i < dst){
newArray[i] = arr[i];
}else{
newArray[i] = arr[i+1];
}
}
//新数组替换旧数组
arr = newArray;
System.out.println(Arrays.toString(arr));
}
}
二、面向对象数组的使用:
public class MyArray {
//用于存储数据的数组
private int[] elements;
public MyArray(){
elements = new int[0];
}
//获取数组长度的方法
public int size(){
return elements.length;
}
//往数组的末尾添加一个元素
public void add(int element){
//创建一个新的数组
int[] newArray = new int[elements.length+1];
//把原数组中的元素复制到新数组中
for (int i = 0; i < elements.length; i++) {
newArray[i] = elements[i];
}
//将添加的元素放入新数组中
newArray[elements.length] = element;
//使用新数组替换旧数组
elements = newArray;
}
//打印所有元素到控制台
public void show(){
System.out.println(Arrays.toString(elements));
}
//删除数组中的元素
public void delete(int index) {
//判断下标是否越界
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
}
//创建一个新的数组,长度为原数组的长度减1
int[] newArr = new int[elements.length - 1];
//复制原有数组到新数组
for (int i = 0; i < newArr.length; i++) {
//想要删除的元素前面的元素
if (i < index) {
newArr[i] = elements[i];
//想要删除的元素后面的元素
}else{
newArr[i] = elements[i+1];
}
}
//新数组替换旧数组
elements = newArr;
}
//取出指定位置的元素
public int get(int index) {
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
}
return elements[index];
}
//如何插入一个元素到指定位置
public void insert(int index, int element) {
//创建一个新的数组
int[] newArray = new int[elements.length + 1];
//将元素组中的元素放入新数组中
for (int i = 0; i < elements.length; i++) {
//目标位置之前的元素
if(i < index){
newArray[i] = elements[i];
//目标位置之后的元素
}else{
newArray[i+1] = elements[i];
}
}
//插入新的元素
newArray[index] = element;
//新数组替换旧数组
elements = newArray;
}
//替换指定位置的元素
public void set(int index, int element) {
if (index < 0 || index > elements.length - 1) {
throw new RuntimeException("下标越界");
}
elements[index] = element;
}
}
public class TestMyArray {
public static void main(String[] args) {
//创建一个可变的数组
MyArray myArray = new MyArray();
//获取长度
int size = myArray.size();
myArray.show();
//往可变数组中添加一个元素
myArray.add(99);
myArray.add(98);
myArray.add(97);
//显示可变数组中的所有元素到控制台
myArray.show();
//删除某个元素
myArray.delete(1);
myArray.show();
//取出指定位置的元素
int element = myArray.get(1);
System.out.println("element="+element);
System.out.println("=============================");
myArray.add(96);
myArray.add(95);
myArray.add(94);
myArray.show();
//插入元素到指定位置
myArray.insert(3,33);
myArray.show();
System.out.println("=============================");
//替换指定位置的元素
myArray.set(-1,100);
myArray.show();
System.out.println(myArray.size());
}
}