一.增加数组:
因为增加数组元素,就是改变了数组的长度,而数组的长度是不可以改变的,只能新建一个数组来接收旧数组的元素和新增的元素
import java.util.Arrays;
import java.util.Scanner;
public class AddElementTest {
public static void main(String[] args) {
int[] nums={7,-8,2,5,7,0};
//数组进行排序
Arrays.sort(nums);
System.out.println("插入前:"+Arrays.toString(nums));
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要插入的元素:");
int num = sc.nextInt();
// 假设要插入的是位置是数组的第一位
int index=0;
//遍历原数组,获取到要插入的真实的位置
for (int i = 0; i < nums.length; i++) {
//判断 第一次出现比插入元素 大的元素
if(num<nums[i]){
//将当前的位置 赋值给 index
index = i;
break;
}else{
index=nums.length;
}
}
// 创建一个新数组,长度是源数组的长度+1
int[] newNums= new int[nums.length+1];
//遍历新数组,将源数组 和插入的数据 存储到新数组中
for (int i = 0; i < newNums.length; i++) {
if (i==index){
newNums[i]=num;
}else if (i<index){
newNums[i]=nums[i];
}else {
newNums[i]=nums[i-1];
}
}
System.out.println("插入后:"+Arrays.toString(newNums));
sc.close();
}
}
二丶删除元素
删除元素也是同理的,数组的长度不能改变,只能新建一个数组来接收旧元素
import java.util.Arrays;
import java.util.Scanner;
/**
* 删除数组中一个元素
* 主要问题是:新建一个数组 才醒 不可以替换
* 因为数组定义后 长度是不可以改变的
*/
public class DeleteElementTest {
public static void main(String[] args) {
String[] names={"aa","bb","cc","dd","vv"};
System.out.println("删除前数据是:"+ Arrays.toString(names));
Scanner sc=new Scanner(System.in);
String del=sc.next();
//判断元素是否存在数组中
int index=-1;
for (int i = 0; i < names.length; i++) {
if (del.equals(names[i])){
index=i;
break;
}
}
//根据输入元素的下标进行判断
if(index!=-1){
System.out.println("是否删除? (y/n)");
String flag=sc.next();
if(flag.equalsIgnoreCase("n")){
System.out.println("撤销删除操作");
}else{
//创建一个删除后的数组
String[] newNames= new String[names.length-1];
for (int i = 0; i < newNames.length; i++) {
if (i<index){
newNames[i]=names[i];
}else{
//想不明白就画图
newNames[i]=names[i+1];
}
}
System.out.println("删除后的数组:"+Arrays.toString(newNames));
}
}else{
System.out.println("元素不存在");
}
sc.close();
}
}