首页 > 解决方案 > 无法分两步按降序对java数组进行排序:第一个从索引0到12,第二个从索引13到24

问题描述

抱歉,这可能是一个愚蠢的问题,但我是一个初学者:当我尝试执行以下程序时,它会编译,但我收到以下错误:

“线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:Numbers.main(Numbers.java:6)处的-1”

有人可以帮忙吗?

 public class Numbers {

    public static void main (String[] args) {

            int [] harry = new int [25];
            for (int i = 0, n = 12; i < harry.length; i++, n--) {
                if (i % 2 > 0) {
                    harry[n] = i;
                }
            } 
            for (int j = 0, m = 25; j < harry.length; j++, m--) {
                if (j % 2 == 0) {
                    harry[m] = j;
                }
            }

            for (int k = 0; k < harry.length; k++) {
                System.out.println(harry[k]);
            }
     }
  }

标签: javaarrayssorting

解决方案


您有这种运行时异常,因为您尝试获取 harry[-1],但这是不可能的。您还将在第二个中看到此异常,因为您设置 m = 25,但数组的索引是从 0 到 24。设置 n=harry.length-1 和 m = harry.length-1,那么您的程序将工作。


推荐阅读