为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

杨魅力 2021-10-27 09:53:20
我正在尝试排列和打印从 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]+" ");    }
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

在您的第一个循环中,您teller3同时用作索引和值。这意味着索引 500 将具有值 500,这与您想要的相反。


您还对数组大小造成了一些混淆。


执行此操作的正确方法是直接执行循环并从 500 中减去该值


int [] aftel = new int [500];

for (int teller3 = 0; teller3 < 500; teller3++){

    aftel500[teller3] = (500 - teller3) + 1;

}

或者对数组索引做同样的事情


int [] aftel = new int [500];

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

   aftel[500 - teller3] = teller3;

}


查看完整回答
反对 回复 2021-10-27
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

尝试:


int[] array = IntStream

        .range(0, 500) // get a stream of [0, 499]

        .map(i -> 500 - i) // map it to [500, 1]

        .toArray();


查看完整回答
反对 回复 2021-10-27
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

问题是你在位置 500 上设置了 500,但你必须在位置 0 上设置 500。这应该有效:


int [] aftel = new int [501];

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

       aftel[500 - teller3] = teller3;

    }

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


查看完整回答
反对 回复 2021-10-27
  • 3 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信