gpt4 book ai didi

java - 我在 Java 中反转数组时哪里出错了?

转载 作者:行者123 更新时间:2023-12-01 22:22:49 25 4
gpt4 key购买 nike

我的代码:

public static int invertieren(int[] werte) {
int[] werte1 = new int[werte.length];
for (int i = 0; i < werte.length; i++) {
for (int j = werte.length - 1; i < j; j--) {
werte1[j] = werte[i];
}
}
return werte1[0];
}

这是我的代码,我开发了一种应该反转我的数组的方法。例如:在main方法中:

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] a = {1,2,3,4,7,5};
System.out.println(invertieren(a));
}

我需要位置 0 - werte1[0] 应该给我 5 回来。

werte1[0] = 5
werte1[1] = 7
werte1[2] = 4

我的新数组应如下所示:int[] werte = {5,7,4,3,2,1}

我的问题之前没有得到解答,因为我正在询问我的代码,以便从使其正确的过程中学习。

最佳答案

您不需要嵌套循环来反转数组。您只需要像这样循环遍历数组:

static int[] invertieren(int[] werte) {
int[] werte1 = new int[werte.length];
for (int i = 0; i < werte.length; i++) {
werte1[i] = werte[werte.length - i - 1];
}
return werte1;
}

如果要返回反转后的数组,需要将原来方法的返回类型更改为返回 int[] 而不是 int,然后返回 werte1 而不是 werte1[0]

要了解其工作原理,请假设 werte.length == 6。因此对于 i = 0 我们有:

werte1[i] = werte[werte.length - i - 1]
werte1[0] = werte[6 - 0 - 1] = werte[5] = 5

对于i = 1:

werte1[1] = werte[6 - 1 - 1] = werte[4] = 7

等等。因此,我们从 05 遍历 werte1,存储 werte5 的值> 到 0

如果您分析 invertieren() 目前的工作原理,您就会明白为什么结果是错误的:

Initial values:
werte = {1,2,3,4,7,5}
werte1 = {0,0,0,0,0,0}

for i = 0:
for j from 5 to 1:
werte1[j] = werte[0]

intermediate result: werte1 = {0,1,1,1,1,1}

for i = 1:
for j fom 5 to 2:
werte1[j] = werte[1]

intermediate result: werte1 = {0,1,2,2,2,2}

for i = 2:
for j from 5 to 3:
werte1[j] = werte[2]

intermediate result: werte1 = {0,1,2,3,3,3}

for i = 3:
for j from 5 to 4:
werte1[j] = werte[3]

intermediate result: werte1 = {0,1,2,3,4,4}

for i = 4:
for j from 5 to 5:
werte1[j] = werte[4]

final result: werte1 = {0,1,2,3,4,7}

for i = 5 it will do nothing, since j starts at 5.

它根本不会反转原始数组,因此 werte1[0] == 0

关于java - 我在 Java 中反转数组时哪里出错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com