如何在数组中排列从 500 到 1 的数组?(爪哇)

我正在尝试排列和打印从 500 开始并在 1 停止的数组,我已经尝试使用以下代码进行了此操作,但这将从 1 开始打印输出到 500:


int [] aftel = new int [501];

for (int teller3 = 500; teller3 > 0; teller3--){

       aftel[teller3] = teller3;

    }

System.out.println(Arrays.toString(aftel));

但是使用以下代码,数组将以正确的方式打印输出,但我试图在打印值之前完全排列数组:


int [] aftel = new int [501];

for (int teller2 = 1; teller2 <= 500; teller2++){

        optel500[teller2] = teller2;

        System.out.print(optel500[teller2]+" ");

    }


杨魅力
浏览 186回答 3
3回答

犯罪嫌疑人X

在您的第一个循环中,您teller3同时用作索引和值。这意味着索引 500 将具有值 500,这与您想要的相反。您还对数组大小造成了一些混淆。执行此操作的正确方法是直接执行循环并从 500 中减去该值int [] aftel = new int [500];for (int teller3 = 0; teller3 < 500; teller3++){&nbsp; &nbsp; aftel500[teller3] = (500 - teller3) + 1;}或者对数组索引做同样的事情int [] aftel = new int [500];for (int teller3 = 500; teller3 > 0; teller3--){&nbsp; &nbsp;aftel[500 - teller3] = teller3;}

侃侃尔雅

尝试:int[] array = IntStream&nbsp; &nbsp; &nbsp; &nbsp; .range(0, 500) // get a stream of [0, 499]&nbsp; &nbsp; &nbsp; &nbsp; .map(i -> 500 - i) // map it to [500, 1]&nbsp; &nbsp; &nbsp; &nbsp; .toArray();

白猪掌柜的

问题是你在位置 500 上设置了 500,但你必须在位置 0 上设置 500。这应该有效:int [] aftel = new int [501];for (int teller3 = 500; teller3 > 0; teller3--){&nbsp; &nbsp; &nbsp; &nbsp;aftel[500 - teller3] = teller3;&nbsp; &nbsp; }System.out.println(Arrays.toString(aftel));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java