一.数组组成
标识符
数组元素
元素下标:从0开始
元素类型 :必须相同
二.使用细节;
案例:
数据类型[ ] 数组名 = new 数据类型[大小] ;
一*如何实现在数组中插入一个数,使其按降序排列;**
题目:
有一个已经按升序排好序的数组。现输入一个数 ,按原来的规律将它插入数组中。
提示>程序分析:首先判断此数第一次小于数组中哪个元素,
然后将此数插入,插入后此元素之后的数
依次后移一个位置。
int[] scores = { 99, 85, 82, 63, 60 }
- // 创建Scanner类对象
Scanner sc = new Scanner(System.in);
int[] scores = { 99, 85, 82, 63, 60 };
3.声明一个长度比原来数组长度大1的数组
int[] newScores = new int[scores.length + 1];
4.将原来数组里元素按照顺序存入到新的数组中
// newScores[0]=scores[0];
// newScores[1]=scores[1];
// newScores[2]=scores[2];
// newScores[3]=scores[3];
// newScores[4]=scores[4];
// 使用循环来实现上述赋值操作,赋值结束后,新数组元素是[99,85,82,63,60,0]
for (int i = 0; i < scores.length; i++) {
newScores[i] = scores[i];
}
System.out.println("插入学生成绩前的数组:");
for (int i : newScores) {
System.out.print(i + " ");
}
System.out.println();
// 3)使用Scanner类获取你要增加的学员成绩
System.out.println("请输入你要增加的学员成绩:");
int insert = sc.nextInt();
// 设置插入的成绩插入的位置,默认将其插入在数组最后位置
int index = newScores.length - 1;
// 4)通过循环比较获取增加的学员成绩的插入位置
for (int i = 0; i < newScores.length; i++) {
// 比较,如果插入的学员成绩比数组里的元素大,得到其插入位置
if (insert > newScores[i]) {
index = i;
// 一旦得到插入成绩比数组元素大,就结束比较,后面不再进行比较
break;
}
}
// 5)从插入元素插入位置开始及之后的元素依次往后移动一位(从最后一个元素开始,倒着移动)
for (int i = newScores.length - 1; i > index; i--) {
newScores[i] = newScores[i - 1];
}
// 6)将要![插入的成绩存储到插入位置
newScores\[index\] = insert;](https://img-blog.csdnimg.cn/d9c9e53b7c834e718ef6b70d61e1f6b8.png)
// 输出数组里的所有元素,看一下是否满足了需求
System.out.println("插入学生成绩后的数组:");
for (int i : newScores) {
System.out.print(i + " ");
}
}
实例: