问题:在指定数组:{99,88,77,66,55};中插入一个数字并使之保持降序。

1.

package pinxixi;import java.util.Arrays;public class java3my {public static void main(String[] args) {int[]arr={99,88,77,66,55};int num=90;int[] arr2=new int[arr.length+1];for (int i = 0; i < arr.length; i++) {if(i<=arr.length-1){arr2[i]=arr[i];}}arr=arr2;arr[arr.length-1]=num;for (int i = 0; i < arr.length; i++) {/*此处范围写大了,当i等于5时arr.length-i-2=-1所以下标越界。而我们把arr.length-i-2作为所替换数组元素的下标时,只要取到下标为0的(即数组中第一个元素即可,即arr.length-i-2能取到0即可,反推i=4(i最大只能取4)源代码 i < arr.length可取到5,所以应该更正为 i < arr.length-1或者 i < =arr.length-2;这样就能避免出现下标越界        的问题。)*/if(num>arr[arr.length-i-2]){int x=arr[arr.length-i-2];arr[arr.length-i-2]=num;arr[arr.length-1-i]=x;}else{break;}}System.out.println(Arrays.toString(arr));}}

 2.本题还有一种方法,即通过获取替换数组下标来解决,这种方法更容易理解。

package pinxixi;import java.util.Arrays;public class java3arr {public static void main(String[] args) {int[]arr={99,88,77,66,55};int num=90;int[] arr2=new int[arr.length+1];for (int i = 0; i < arr.length; i++) {if(i<=arr.length-1){arr2[i]=arr[i];}}arr=arr2;int index=0;for (int i = 0; i < arr.length; i++) {if(arr[i]<num){index=i;break;}}for (int i =arr.length-1; i>index; i--) {arr[i]=arr[i-1];}arr[index]=num;System.out.println(Arrays.toString(arr));}
}

运行结果

JAVA数组 添加数组元素并排序---下标越界问题相关推荐

  1. [ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法

    对数组中的元素进行排序. 此方法按 Unicode 值排序. (ASCII 是 Unicode 的一个子集.) 默认情况下,Array.sort()按以下方式进行排序: 1. 排序区分大小写(Z优先于 ...

  2. python 数组添加数组_Python添加到数组

    python 数组添加数组 Python doesn't have any specific data type as an array. We can use List that has all t ...

  3. c语言数组添加字符元素,C语言数组添加和删除元素的实现

    数组不擅长插入(添加)和删除元素.数组的优点在于它是连续的,所以查找数据速度很快.但这也是它的一个缺点.正因为它是连续的,所以当插入一个元素时,插入点后所有的元素全部都要向后移:而删除一个元素时,删除 ...

  4. 数组10— sort() : 对数组中的元素进行排序

    在上节,我们学习了如何使用 JavaScript Array some() 方法来检查数组中的至少一个元素是否通过了测试,错过的小伙伴可以点击文章<[JavaScript 教程]第六章 数组09 ...

  5. HTML怎么去除数组的重复元素,js去除数组中重复元素并排序

    /p> "http://www.w3.org/TR/html4/strict.dtd"> 003_obj //去掉数组中重复的元素 var arr=[1,2,2,3,3 ...

  6. php数组添加数组_PHP数组

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值  array_keys($arr);获得数组的键名  array_flip($arr);数组中的值与键名互换 ...

  7. 微信小程序向原数组添加数组

    this.data.list       是原来的数组 concat()              向原数组后面添加数组 this.setData({list: this.data.list.conc ...

  8. java中添加数组元素

    public class ArrayTest {     public static void main(String[] args)     {         int[] array = { 2, ...

  9. 微信小程序向原数组添加数组 前增加、后增加、删除、数组转字符串、字符串转数组

    this.data.list 是原来的数组: newarray 要添加的数据: concat() 向原数组追加方法: 数组开头追加 this.setData({list: newarray.conca ...

最新文章

  1. mysql 时区与时间函数
  2. cocos对象池的使用
  3. java 2维数据便利_计算机等级考试二级java数组辅导
  4. 转---svn的使用
  5. 利用git 进行多人协作开发
  6. Python 操作redis有序集合
  7. python 元类 type_python Class:面向对象高级编程 元类:type
  8. PRD的编写竟然暗含这个思路
  9. c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)
  10. 如何在Eclipse上使用SVN,安装、提交、拉取代码、解决冲突等操作
  11. 大型论坛系统环境搭建(20万日IP负载平衡实战)–Nginx+Apache2+PHP+MySQL
  12. MLDN 五子棋。笔记
  13. 四叶草efi_Clover Configurator——四叶草配置引导工具
  14. IntelliJ IDEA 激活 破解补丁
  15. pythoneducoder苹果梨子煮水的功效_苹果梨子煮水的功效是什么呢
  16. 西门子em235模块的功能_多图细讲,模拟量模块与变送器的接线
  17. 用于3D成像显微镜的双螺旋PSF
  18. 腾讯AI Lab宣布中国首款智能显微镜获药监局批准进入临床应用
  19. 氧自由基抗氧化能力(ORAC)活性检测试剂盒常见问题解答
  20. QinQ与Vlan Mapping讲解与实验配置

热门文章

  1. 基于51单片机的羽毛球计分器设计
  2. SSH和文件传输(SCP)
  3. 写简洁java代码的小技巧
  4. 保护站点上已存在另一个具有相同实例 UUID的虚拟机_化合物晶形专利权利要求的表征及保护范围探讨...
  5. android 百度地图3.0定位,百度地图定位功能实现v3_0_0
  6. Windows XP免密码自动登录
  7. 3GPP TS 23501-g51 中英文对照 | 4.2.5 Data Storage architectures
  8. 高斯模糊(高斯滤波)的原理与算法
  9. 微信小程序布局-图片+文字
  10. 数据结构(Java)