这里讲解一下我删除,增加数组元素的思路。
首先数组被创建以后它的长度是不可变的。若要增加一个数组元素的话,我们则需要新创建一个数组2来接收原数组1的值。(并且要注意是在某个位置前还是后添加元素),假设添加元素位置为 i 请大家查看我的代码。(我大概是将其分为了两部分 一部分是添加元素位置前 数组1和数组2是一样的。在添加元素位置时则会发生改变 数组2[i-1]=添加元素。)
删除元素:删除元素则是从末尾处开始 详情请查看代码。
public class Demo3_8 {
public static void main(String[] args) {
int num;
int arry[] = { 123, 15, 25, 1, 23, 22, 158 }; //创建了一个数组
Scanner sc = new Scanner(System.in);
System.out.println(Arrays.toString(arry));
System.out.println("请输入你想增加元素的位置:");
// System.out.println("请输入你想删除元素的位置:");
//这里的删除数组一个元素被我注释了
num = sc.nextInt();
addArry(arry, num);//调用添加数组元素方法
// delArry(arry, num);
}
static void addArry(int[] arry, int num) {
int[] arry2 = new int[arry.length + 1];
for (int i = 0; i < num; i++) {
arry2[i] = arry[i];
}
arry2[num - 1] = 0;
for (int i = num; i < arry2.length; i++) {
arry2[i]=arry[i-1];
}
System.out.println(Arrays.toString(arry2));
}
static void delArry(int[] arry, int num) {
for (int i = num - 1; i < arry.length - 1; i++) {
arry[i] = arry[i + 1];
}
arry[arry.length - 1] = 0;
System.out.println(Arrays.toString(arry));
}
}
这里是我的通过方法来交换两个数的值。
package demo2;
public class ArrayListChange {
public static void main(String[] args) {
int[] arry = new int[] { 10, 222 };
System.out.print("数组方式交换两个值:");
compareNubmer1(arry);
for (int i = 0; i < arry.length; i++) {
System.out.print(arry[i] + " ");
}
System.out.println();
int a = 10;
int b = 222;
compareNubmer(a, b);
System.out.println("直接交换:" + a + " " + b);
int[] arry1 = new int[] { 10, 222 };
compareNubmer(arry1[0], arry1[1]);
System.out.print("直接交换的另一种方式:");
for (int j = 0; j < arry1.length; j++) {
System.out.print(arry1[j] + " ");
}
}
private static void compareNubmer(int i, int j) { // 此方法不能交换两个数的值 传值运算
int tmp;
tmp = i;
i = j;
j = tmp;
}
private static void compareNubmer1(int[] arry) { // 可以交换两个数的值 传址运算 , 采用的是数组方式
int tmp;
tmp = arry[0];
arry[0] = arry[1];
arry[1] = tmp;
}
}
希望大家提意见啦。