Java数组迭代器
这是我在网上找到的一个示例(我对其进行了修改),它使用了一个返回数组的方法。正在传递的数组按相反顺序迭代为新数组
public class MultDim {
public static void main(String[] args)
{
double[] myList = {1.9, 2.9, 3.4, 3.5};
double[] returned = returnArr(myList);
for (double elem : returned) {
System.out.println(elem);
}
}
public static double[] returnArr(double[] list) {
double[] result = new double[list.length];
for (int i = 0, j = list.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
}
我想要的是,将要传递给方法的数组元素的顺序与返回的数组中的顺序相同。以下是我试图解决这个问题的方法。但是is返回的错误是(list.length的基本类型int没有字段i)
public class MultDim {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
double[] returned = returnArr(myList);
for (double elem : returned) {
System.out.println(elem);
}
}
public static double[] returnArr(double[] list) {
double[] result = new double[list.length];
for (int i = 0, j = 0; j < list.length, i < list.length; i++, j++) {
result[j] = list[i];
}
return result;
}
}
我只是想知道我错过了什么
# 1 楼答案
编译器错误是由
for
循环中的条件引起的j < list.length, i < list.length
是无效条件。如果同时表示j < list.length
和i < list.length
,那么使用逻辑and运算符(&&
):话虽如此,您不需要在循环中同时使用
i
和j
,因为返回的数组与作为参数传递的数组大小相同。所以你只需要:# 2 楼答案
for
循环中的停止条件不能这样写在这种情况下,一个简单的
这就足够了
或者只是:
# 3 楼答案
您应该看看
for
需要如何构造init
可以是java初始化列表,用逗号(,
)分隔stop_condition
需要是一个计算结果为布尔值的java表达式,在您的情况下,它应该是:动作可以是java表达式的列表,用逗号(
,
)分隔你可以写得更简单(因为我和j总是一样的):
# 4 楼答案
第一个图像中的代码将反转数组字段 但这是你的,威尔成功了
# 5 楼答案
要解决实际问题——如何复制数组数据,您可能应该使用Java库提供的函数
例如:
其他选项包括System.arraycopy