java基础之一维数组元素的插入

Giser_往事随风 Giser_往事随风 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1.先对数组进行排序(Arrays.sort(数组名) );

2.对数组扩容:定义一个新数组接收原数组,int [] 新数组名=Arrays.copyOf(原数组名,num.length+1);

3.定义一个index用来保存插入位置的下标;

4. 输入新元素a,用for循环,里面加一个if,判断条件是数组中任一元素>a,找到下标。

5.新建一个for循环,自插入位置元素起(不包含即i>index)向右所有元素都向右移一位(因为之前扩容过一位,最后一个元素为0,所以长度是正好的);

6.将新数组下标为index的元素赋值为插入的元素;

7.输出新数组即可。

实例:

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] scores = { 99, 85, 82, 63, 60 };
Arrays.sort(scores);
int[] scores1 = Arrays.copyOf(scores, scores.length + 1);
int index = 0;
System.out.println("请输入新增成绩:");
int a = sc.nextInt();
for (int i = 0; i < scores1.length; i++) {
if (scores[i] > a) {
index = i;
break;
}
}
for (int i = scores1.length - 1; i > index; i--) {
scores1[i] = scores[i - 1];
}
scores1[index] = a;
System.out.println("插入后的成绩下标是:" + index);
System.out.println("插入后的成绩信息是:");
for (int i : scores1) {
System.out.print(i + "\t");
}
}
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
Giser_往事随风
Java 51,407 成员 86,135 内容